在C语言程序中如何定义函数e^(-1/t)/t^2啊?求大哥帮忙。用梯形法求积分的。对了,你会用辛普森法求积分吗

 我来答
sdzzliuming
2011-10-17 · TA获得超过1186个赞
知道小有建树答主
回答量:1147
采纳率:45%
帮助的人:525万
展开全部
#include <stdio.h>
#include <math.h>

double simpson(double f(double farg),double a,double b,int n)
{ double h, sum1, sum2;
int i;
h=(b-a)/n;
sum1=0;
for(i=2;i<=n;i=i+2)
{ sum1=sum1+f(a+(i-1)*h);
}
sum2=0;
for(i=2;i<=n-2;i=i+2)
{ sum2=sum2+f(a+i*h);
}
return(h/3*(f(a)+f(b)+4*sum1+2*sum2));
}
double f(double x)
{ double y=0.1;
return(4*(1-pow(10,y*(-2)*sqrt((0.25-x*x))))*sqrt(0.64-x*x));
}

void main( )
{ double m,y,x;
FILE * fp ;//定义一个输出文件
fp =fopen("zidingyi.txt", "w");
printf("f(x)dx=%f\n", simpson(f,0,0.5,1000000));

}

这是以前写的一个程序,针对函数是4*(1-pow(10,y*(-2)*sqrt((0.25-x*x))))*sqrt(0.64-x*x)。
上面是辛普森法求积分法,而采用梯形的那个非常简单,结果查不到 当时我都尝试过
更多追问追答
追问
我用exp(-1/x)/pow(x,2)来表示e^(-1/t)/t^2你看行吗?
#include "math.h"

double f(double x)
{
return return (exp(-1/x)/pow(x,2));
}
追答
应该可以,然后修改下积分上下限等等;你可以尝试下用梯形面积来验证你的答案
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式