首页 > 编程知识 正文

c语言求定积分近似值,C语言求微积分

时间:2024-04-24 11:43:20 阅读:334119 作者:KDNR

本文目录一览:

用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语言:编程求出图片上的定积分近似值,咋写?

代码文本:

#include "stdio.h"

#include "math.h"

int main(int argc,char *argv[]){

double s,x,d=0.000001,pi=3.1415926,t=1/3.0;

for(s=0.0,x=pi/2;x=pi;x+=d)

s+=sqrt(x)/(1-pow(x,t))*d;

printf("%fn",s);

return 0;

}

C语言---定积分的近似计算

我这边有个例子,你可以参考一下

至于菜单,自己定义吧,我也不知道你要什么样的菜单

#includestdio.h

#includemath.h

#define PF printf

#define M 1000

void main()

{ float f1(float);

float f2(float);

float f3(float);

float f4(float);

float f5(float);

float integral(float,float,float (float));

float a,b;

PF("请输入上,下限a,b:");

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

PF("(1+x)*x在[%.2f,%.2f]的定积分为:",a,b);

PF("%.2fn",integral(a,b,f1));

PF("(2*x+3)*x在[%.2f,%.2f]的定积分为:",a,b);

PF("%.2fn",integral(a,b,f2));

PF("(1+x)*x在[%.2f,%.2f]的定积分为:",a,b);

PF("%.2fn",integral(a,b,f1));

PF("exp(x)+1在[%.2f,%.2f]的定积分为:",a,b);

PF("%.2fn",integral(a,b,f3));

PF("(1+x)*(1+x)在[%.2f,%.2f]的定积分为:",a,b);

PF("%.2fn",integral(a,b,f4));

PF("x*x*x在[%.2f,%.2f]的定积分为:",a,b);

PF("%.2fn",integral(a,b,f5));

}

float f1(float x)

{ float y;

y=(1+x)*x;

return y;

}

float f2(float x)

{ float y;

y=(2*x+3)*x;

return y;

}

float f3(float x)

{ float y;

y=(float)exp(x)+1;

return y;

}

float f4(float x)

{ float y;

y=(1+x)*(1+x);

return y;

}

float f5(float x)

{ float y;

y=x*x*x;

return y;

}

float integral(float a,float b,float (*fun)(float))

{ float n,h,s=0;

int i;

n=(b-a)/M;

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

{ h=a+n*i;

s+=n*(*fun)(h);

}

return s;

}

其中只要把那几个函数(f1,f2,f3,f4,f5)的算法改掉就行了

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。