c语言二元函数定积分 c语言二元二次方程

C语言编写f(x)=x^2在区间[0,1]定积分

思路就是将区间无限细分

创新互联专注于开江企业网站建设,响应式网站开发,商城网站建设。开江网站建设公司,为开江等地区提供建站服务。全流程按需设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

小区间梯形就可以看成矩形,小矩形所有面积相加,就是定积分

#include "stdio.h"

#include "math.h"

double f(double x)//被积函数

{

 return x*x;

}

double fun(double p,double q,int n)//p,q分别表示积分下上限,n为细分的区间数,越大值越精确

{

int i;

double sum=0,h=(q-p)/n;

for (i=1;i=n;i++) //f(p+i*h)*h就是小矩形的面积,加到sum上去。

sum+=f(p+i*h)*h;

return sum;

}

int main()

{

printf("(x*x)在(0,1)上定积分为%lf\n",fun(0,1,1000000));//区间数自己设越大值越精确

}

结果:

数学分析:

f(x)=x^2=x*x;

定积分:x*x*x/3+c(常数)

在区间(0,1)上定积分:1/3=0.333333

结果正确。

用C语言编写一个求定积分的程序

#includestdio.h

#includemath.h

float f1(float x)

{

return(1.0+x);

}

float f2(float x)

{

return(2.0*x+3.0);

}

float f3(float x)

{

return(exp(x)+1);

}

float f4(float x)

{

return(pow(1+x,2));

}

float f5(float x)

{

return(pow(x,3));

}

float fsimp(float a,float b,float (*p)(float))

{

float c,s;

c=(a+b)/2;

s=(b-a)/6*(p(a)+4*p(c)+p(b));

return s;

}

int main()

{

float a,b;

printf("请输入积分下限a的值:");

scanf("%f",a);

printf("请输入积分上限b的值:");

scanf("%f",b);

printf("%f\n",fsimp(a,b,f1));

printf("%f\n",fsimp(a,b,f2));

printf("%f\n",fsimp(a,b,f3));

printf("%f\n",fsimp(a,b,f4));

printf("%f\n",fsimp(a,b,f5));

}

用C语言求定积分

实际问题描述:

求定积分近似值

程序代码如下:

#include

#include

void main()

{

int i,n=1000;

float a,b,h,t1,t2,s1,s2,x;

printf("请输入积分限a,b:");

scanf("%f,%f",a,b);

h=(b-a)/n;

for(s1=0,s2=0,i=1;i=n;i++)

{

x=a+(i-1)*h;

t1=(float)exp(-x*x/2);t2(float)=exp(-(x+h)*(x+h)/2);

s1=s1+t1*h;        /*矩形面积累加*/

s2=s2+(t1+t2)*h/2;        /*梯形面积累加*/

}

printf("矩形法算得积分值:%f.\n",s1);

printf("梯形法算得积分值:%f.\n",s2);

}

程序运行结果如下:

矩形法算得积分值:0.855821

梯形法算得积分值:0.855624

由上面的比较可知,梯形法的精度要高于矩形法。


分享文章:c语言二元函数定积分 c语言二元二次方程
标题网址:http://azwzsj.com/article/dogoseg.html