真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言微積分函數(shù)庫 c語言 微積分

怎樣編寫c語言積分函數(shù)

積分分為兩種,數(shù)值積分,公式積分。

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)獻縣免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

公式積分:部分函數(shù)可以直接用公式求得其不定積分函數(shù)。C語言中可以直接用積分公式寫出其積分函數(shù)。

數(shù)值積分:按照積分的定義,設(shè)置積分范圍的步長,用梯形面積累加求得其積分。

以【f(x)=x*sin(x) 從1到2的積分】為例:

#include?math.h

#include?stdio.h

double?integral(double(*fun)(double?x),double?a,double?b,int,n){

double?s,h,y;

int?i;

s=(fun(a)+fun(b))/2;

h=(b-a)/n;?/*積分步長*/

for(i=1;in;i++)

s=s+fun(a+i*h);

y=s*h;

return?y;/*返回積分值*/

}

double?f(double?x){

return(x*sinx)??/*修改此處可以改變被積函數(shù)*/

}

int?main(){

double?y;

y=integral(f,1.0,2.0,150);/*修改此處可以改變積分上下限和步數(shù),步長=(上限-下限)/步數(shù)*/

printf("y=%f\n",y);

return?0;

}

c語言編程- 微積分程序

辛普森法

#include stdio.h

#include math.h

#define F(X) (4.0/(1+X*X))

static float EPS = 1.0E-14;

static int COUNT=1;

static double a=0.0, b=1.0;

static double M[32],T[32],S[32],C[32],R[32],E[32];

double GETM(int K)

{ unsigned long j,n=1;

double x=0,y=0,step=0;

for(j=0;jK;j++) n*=2;

step = (b-a)/n;

x = a+step/2;

for(j=0;jn;j++){y+=F(x);x+=step;}

return (y*step);

}

Simpson(float EPS)

{ int k=0;

T[0]= (b-a)*(F(a)+F(b))/2.0;

S[0]=T[0];

E[0]=1.0E10;

for(k=0;k20;k++)

{ M[k] = GETM(k);

T[k+1]=(M[k]+T[k])/2.0;

S[k+1]=(4.0*T[k+1]-T[k])/3.0;

COUNT++;

E[k+1]=fabs(S[k+1]-S[k]);

if(k3)continue;

if(E[k+1]EPS)break;

}

return;

}

ShawResult()

{ int k;

system("cls");

printf("\n K M[K] T[K] S[K]");

printf(" E[K]");

printf("\n-------------------------------------------");

printf("-----------------------------------");

for(k=0;kCOUNT;k++)

printf("\n%2d %20.15lf%20.15lf%20.15lf%12.4e",k,M[k],T[k],S[k],E[k]);

printf("\n--------------------------------------------");

printf("-----------------------------------");

getch();

system("cls");

return;

}

SaveResult()

{ int k;

FILE * fp;

fp=fopen("Simpson.htm","w");

if(!fp) return;

fprintf(fp,"htmlhead/head");

fprintf(fp,"body bgcolor = #006699 text = #FFff00");

fprintf(fp,"prefont size=\"6\"");

fprintf(fp,"\n K M[K] T[K] S[K]");

fprintf(fp," E[K]");

fprintf(fp,"\n----------------------------------------------");

fprintf(fp,"----------------------------------");

for(k=0;kCOUNT;k++)

fprintf(fp,"\n%2d %20.15f%20.15f%20.15f%12.4le",k,M[k],T[k],S[k],E[k]);

fprintf(fp,"\n----------------------------------------------");

fprintf(fp,"----------------------------------");

fprintf(fp,"/pre/font/body");

fclose(fp);

return;

}

main()

{ Simpson(EPS);

ShawResult();

SaveResult();

}

求C語言庫函數(shù)大全!請大家?guī)兔?謝了!

int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否則返回0

int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或數(shù)字('0'-'9')

返回非0值,否則返回0

int isascii(int ch) 若ch是字符(ASCII碼中的0-127)返回非0值,否則返回0

int iscntrl(int ch) 若ch是作廢字符(0x7F)或普通控制字符(0x00-0x1F)

返回非0值,否則返回0

int isdigit(int ch) 若ch是數(shù)字('0'-'9')返回非0值,否則返回0

int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否則返回0

int islower(int ch) 若ch是小寫字母('a'-'z')返回非0值,否則返回0

int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否則返回0

int ispunct(int ch) 若ch是標點字符(0x00-0x1F)返回非0值,否則返回0

int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回車符('\r'),

走紙換行('\f'),垂直制表符('\v'),換行符('\n')

返回非0值,否則返回0

int isupper(int ch) 若ch是大寫字母('A'-'Z')返回非0值,否則返回0

int isxdigit(int ch) 若ch是16進制數(shù)('0'-'9','A'-'F','a'-'f')返回非0值,

否則返回0

int tolower(int ch) 若ch是大寫字母('A'-'Z')返回相應的小寫字母('a'-'z')

int toupper(int ch) 若ch是小寫字母('a'-'z')返回相應的大寫字母('A'-'Z')

========數(shù)學函數(shù)(原型聲明所在頭文件為math.h、stdlib.h、string.h、float.h)===========

int abs(int i) 返回整型參數(shù)i的絕對值

double cabs(struct complex znum) 返回復數(shù)znum的絕對值

double fabs(double x) 返回雙精度參數(shù)x的絕對值

long labs(long n) 返回長整型參數(shù)n的絕對值

double exp(double x) 返回指數(shù)函數(shù)ex的值

double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存貯在eptr中

double ldexp(double value,int exp); 返回value*2exp的值

double log(double x) 返回logex的值

double log10(double x) 返回log10x的值

double pow(double x,double y) 返回xy的值

double pow10(int p) 返回10p的值

double sqrt(double x) 返回x的開方

double acos(double x) 返回x的反余弦cos-1(x)值,x為弧度

double asin(double x) 返回x的反正弦sin-1(x)值,x為弧度

double atan(double x) 返回x的反正切tan-1(x)值,x為弧度

double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x為弧度

double cos(double x) 返回x的余弦cos(x)值,x為弧度

double sin(double x) 返回x的正弦sin(x)值,x為弧度

double tan(double x) 返回x的正切tan(x)值,x為弧度

double cosh(double x) 返回x的雙曲余弦cosh(x)值,x為弧度

double sinh(double x) 返回x的雙曲正弦sinh(x)值,x為弧度

double tanh(double x) 返回x的雙曲正切tanh(x)值,x為弧度

double hypot(double x,double y) 返回直角三角形斜邊的長度(z),

x和y為直角邊的長度,z2=x2+y2

double ceil(double x) 返回不小于x的最小整數(shù)

double floor(double x) 返回不大于x的最大整數(shù)

void srand(unsigned seed) 初始化隨機數(shù)發(fā)生器

int rand() 產(chǎn)生一個隨機數(shù)并返回這個數(shù)

double poly(double x,int n,double c[])從參數(shù)產(chǎn)生一個多項式

double modf(double value,double *iptr)將雙精度數(shù)value分解成尾數(shù)和階

double fmod(double x,double y) 返回x/y的余數(shù)

double frexp(double value,int *eptr) 將雙精度數(shù)value分成尾數(shù)和階

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成浮點數(shù)并返回這個浮點數(shù)

double atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整數(shù)并返回這個整數(shù)

double atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長整數(shù)并返回這個整數(shù)

char *ecvt(double value,int ndigit,int *decpt,int *sign)

將浮點數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

將浮點數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *gcvt(double value,int ndigit,char *buf)

將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針

char *ultoa(unsigned long value,char *string,int radix)

將無符號整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)

char *ltoa(long value,char *string,int radix)

將長整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)

char *itoa(int value,char *string,int radix)

將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時所用基數(shù)

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),錯誤返回0

int atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整型數(shù), 并返回這個數(shù),錯誤返回0

long atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長整型數(shù),并返回這個數(shù),錯誤返回0

double strtod(char *str,char **endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),

long strtol(char *str,char **endptr,int base)將字符串str轉(zhuǎn)換成長整型數(shù),

并返回這個數(shù),

int matherr(struct exception *e)

用戶修改數(shù)學錯誤返回信息函數(shù)(沒有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,

double *arg2p,double retval)

用戶修改數(shù)學錯誤返回信息函數(shù)(沒有必要使用)

unsigned int _clear87() 清除浮點狀態(tài)字并返回原來的浮點狀態(tài)

void _fpreset() 重新初使化浮點數(shù)學程序包

unsigned int _status87() 返回浮點狀態(tài)字

============目錄函數(shù)(原型聲明所在頭文件為dir.h、dos.h)================

int chdir(char *path) 使指定的目錄path(如:"C:\\WPS")變成當前的工作目錄,成

功返回0

int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功

返回0

pathname為指定的目錄名和文件名,如"C:\\WPS\\TXT"

ffblk為指定的保存文件信息的一個結(jié)構(gòu),定義如下:

┏━━━━━━━━━━━━━━━━━━┓

┃struct ffblk ┃

┃{ ┃

┃ char ff_reserved[21]; /*DOS保留字*/┃

┃ char ff_attrib; /*文件屬性*/ ┃

┃ int ff_ftime; /*文件時間*/ ┃

┃ int ff_fdate; /*文件日期*/ ┃

┃ long ff_fsize; /*文件長度*/ ┃

┃ char ff_name[13]; /*文件名*/ ┃

┃} ┃

┗━━━━━━━━━━━━━━━━━━┛

attrib為文件屬性,由以下字符代表

┏━━━━━━━━━┳━━━━━━━━┓

┃FA_RDONLY 只讀文件┃FA_LABEL 卷標號┃

┃FA_HIDDEN 隱藏文件┃FA_DIREC 目錄 ┃

┃FA_SYSTEM 系統(tǒng)文件┃FA_ARCH 檔案 ┃

┗━━━━━━━━━┻━━━━━━━━┛

例:

struct ffblk ff;

findfirst("*.wps",ff,FA_RDONLY);

int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0

void fumerge(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)通過盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴展名ext(.EXE、.COM等)組成一個文件名

存與path中.

int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)將文件名path分解成盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴展名ext(.EXE、.COM等),并分別存入相應的變量中.

int getcurdir(int drive,char *direc) 此函數(shù)返回指定驅(qū)動器的當前工作目錄名稱

drive 指定的驅(qū)動器(0=當前,1=A,2=B,3=C等)

direc 保存指定驅(qū)動器當前工作路徑的變量 成功返回0

char *getcwd(char *buf,iint n) 此函數(shù)取當前工作目錄并存入buf中,直到n個字

節(jié)長為為止.錯誤返回NULL

int getdisk() 取當前正在使用的驅(qū)動器,返回一個整數(shù)(0=A,1=B,2=C等)

int setdisk(int drive) 設(shè)置要使用的驅(qū)動器drive(0=A,1=B,2=C等),

返回可使用驅(qū)動器總數(shù)

int mkdir(char *pathname) 建立一個新的目錄pathname,成功返回0

int rmdir(char *pathname) 刪除一個目錄pathname,成功返回0

char *mktemp(char *template) 構(gòu)造一個當前目錄上沒有的文件名并存于template中

char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路徑,

,此函數(shù)使用DOS的PATH變量,未找到文件返回NULL

===========進程函數(shù)(原型聲明所在頭文件為stdlib.h、process.h)===========

void abort() 此函數(shù)通過調(diào)用具有出口代碼3的_exit寫一個終止信息于stderr,

并異常終止程序。無返回值

int exec…裝入和運行其它程序

int execl( char *pathname,char *arg0,char *arg1,…,char *argn,NULL)

int execle( char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int execlp( char *pathname,char *arg0,char *arg1,…,NULL)

int execlpe(char *pathname,char *arg0,char *arg1,…,NULL,char *envp[])

int execv( char *pathname,char *argv[])

int execve( char *pathname,char *argv[],char *envp[])

int execvp( char *pathname,char *argv[])

int execvpe(char *pathname,char *argv[],char *envp[])

exec函數(shù)族裝入并運行程序pathname,并將參數(shù)

arg0(arg1,arg2,argv[],envp[])傳遞給子程序,出錯返回-1

在exec函數(shù)族中,后綴l、v、p、e添加到exec后,

所指定的函數(shù)將具有某種操作能力

有后綴 p時,函數(shù)可以利用DOS的PATH變量查找子程序文件。

l時,函數(shù)中被傳遞的參數(shù)個數(shù)固定。

v時,函數(shù)中被傳遞的參數(shù)個數(shù)不固定。

e時,函數(shù)傳遞指定參數(shù)envp,允許改變子進程的環(huán)境,

無后綴e時,子進程使用當前程序的環(huán)境。

void _exit(int status)終止當前程序,但不清理現(xiàn)場

void exit(int status) 終止當前程序,關(guān)閉所有文件,寫緩沖區(qū)的輸出(等待輸出),

并調(diào)用任何寄存器的"出口函數(shù)",無返回值

int spawn…運行子程序

int spawnl( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnle( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnlp( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnlpe(int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnv( int mode,char *pathname,char *argv[])

int spawnve( int mode,char *pathname,char *argv[],char *envp[])

int spawnvp( int mode,char *pathname,char *argv[])

int spawnvpe(int mode,char *pathname,char *argv[],char *envp[])

spawn函數(shù)族在mode模式下運行子程序pathname,并將參數(shù)

arg0(arg1,arg2,argv[],envp[])傳遞給子程序.出錯返回-1

mode為運行模式

mode為 P_WAIT 表示在子程序運行完后返回本程序

P_NOWAIT 表示在子程序運行時同時運行本程序(不可用)

P_OVERLAY表示在本程序退出后運行子程序

在spawn函數(shù)族中,后綴l、v、p、e添加到spawn后,

所指定的函數(shù)將具有某種操作能力

有后綴 p時, 函數(shù)利用DOS的PATH查找子程序文件

l時, 函數(shù)傳遞的參數(shù)個數(shù)固定.

v時, 函數(shù)傳遞的參數(shù)個數(shù)不固定.

e時, 指定參數(shù)envp可以傳遞給子程序,允許改變子程序運行環(huán)境.

當無后綴e時,子程序使用本程序的環(huán)境.

int system(char *command) 將MSDOS命令command傳遞給DOS執(zhí)行

======轉(zhuǎn)換子程序(函數(shù)原型所在頭文件為math.h、stdlib.h、ctype.h、float.h)========

char *ecvt(double value,int ndigit,int *decpt,int *sign)

將浮點數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

將浮點數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *gcvt(double value,int ndigit,char *buf)

將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針

char *ultoa(unsigned long value,char *string,int radix)

將無符號整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)

char *ltoa(long value,char *string,int radix)

將長整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時所用基數(shù)

char *itoa(int value,char *string,int radix)

將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時所用基數(shù)

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),錯誤返回0

int atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整型數(shù), 并返回這個數(shù),錯誤返回0

long atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長整型數(shù),并返回這個數(shù),錯誤返回0

double strtod(char *str,char **endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個數(shù),

long strtol(char *str,char **endptr,int base)將字符串str轉(zhuǎn)換成長整型數(shù),

并返回這個數(shù),

int toascii(int c) 返回c相應的ASCII

int tolower(int ch) 若ch是大寫字母('A'-'Z')返回相應的小寫字母('a'-'z')

int _tolower(int ch) 返回ch相應的小寫字母('a'-'z')

int toupper(int ch) 若ch是小寫字母('a'-'z')返回相應的大寫字母('A'-'Z')

int _toupper(int ch) 返回ch相應的大寫字母('A'-'Z')

用C語言計算微積分?

我給一樓加的注釋以及修改:

#includestdio.h

#includemath.h

#define ARRAYBOUND 10001

void main()

{

int i = 0; //輔助變量,最常見那種

int n = 0; //將所求定積分函數(shù)曲線在x軸方向,平均分成n等分;n越大,結(jié)果越精確;不過限于此算法限制nARRAYBOUND,否則溢出.

float x[ARRAYBOUND];//ARRAYBOUND維浮點數(shù)組,存放離散的x坐標值

float y[ARRAYBOUND];//ARRAYBOUND維浮點數(shù)組,存放每個x坐標對應的函數(shù)值;x[i],y[i]滿足y[i]=f(x[i]),f是你要求定積分的函數(shù)

float x0 = 0.0; //定積分下限

float xn = 0.0; //定積分上限

float h = 0.0; //面積微元寬度

float J = 0.0; //輔助變量

/*f=x^3*/ //這里說明要求定積分的是函數(shù)f(x)=x*x*x;(y等于x的立方,x^3是vb的寫法)

// printf("input x0,xn,n:");

printf("請分別輸入下限(x0),上限(xn),精度(n):");

scanf("%f",x0);

scanf("%f",xn);

scanf("%d",n);

h=(xn-x0)/n;//將函數(shù)圖形在x方向平分成n份,h是每個面積微元的寬度

x[0]=x0; //將積分下限賦值給x[0]

for(i=0;i=n nARRAYBOUND;i++)

{

x[i]=x[0]+i*h; //計算n個離散的橫坐標值,存入x[]數(shù)組

y[i]=(float)pow(x[i],3);//計算n個橫坐標對應的函數(shù)值,存入y[]數(shù)組。在此可以改變要求積分的函數(shù)

}

// J=0.0;

for(i=0;in;i++)

{

//J=J+y[i]+y[i+1];

J+=y[i];//將所有縱坐標值代數(shù)相加,存入J

}

//J=J*h/2.0;

J=J*h;//所有微元面積一次求解,因為∑h*y[i]=h*∑y[i];

printf("\nn=%d \n所求定積分值是: %f\n",n,J);

}

我將//J=J+y[i]+y[i+1]改為J+=y[i];將//J=J*h/2.0;改為J=J*h只是幫助lz理解

其實,這兩種表達在理論上是等價的,不過我發(fā)現(xiàn)修改后,在n同樣大小的情況下,結(jié)果的精度有一點點下降,還真不知為什么???

這樣的話lz應該能理解了吧,其實一樓的算法還有不少值得改進的地方,希望lz能有所突破!!

用C語言實現(xiàn)微積分計算

C沒有自帶的微積分函數(shù),只能靠數(shù)值方法來估算值,求不出準確答案。


當前文章:c語言微積分函數(shù)庫 c語言 微積分
鏈接分享:http://weahome.cn/article/hhcjjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部