4. 编写使用梯形法计算定积分计算例题的程序。...

问题已关闭
代为完成的个人任务
提问需要满足:其他人可能遇到相似问题,或问题的解决方法对其他人有所助益。如果通过其他方式解决遇到困难,欢迎提问并说明你的求知过程。
C++用梯形法计算定积分。要求:从键盘输入上下限及被积函数?
用 C++求定积分,要求设计程序,谢谢大神!急!
已有帐号?
无法登录?
社交帐号登录integral 用C++编写的一个用变步长梯形法来求积分的程序 matlab 238万源代码下载-
&文件名称: integral
& & & & &&]
&&所属分类:
&&开发工具: C-C++
&&文件大小: 1 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:用C++编写的一个用变步长梯形法来求积分的程序-Written in c++ ,a variable step size trapezoid method to integrate the process.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&变步长梯形法积分.cpp
&输入关键字,在本站238万海量源码库中尽情搜索:求助 用变步长梯形求积法算定积分_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:440,500贴子:
求助 用变步长梯形求积法算定积分收藏
下面是我编的程序 不知道为什么精度在0-0.5输出的值就会变成1.7几
正确答案应该在0.7左右
麻烦大神纠下错
感激不尽啊#include&stdio.h&#include&math.h& double fun(double x){ double y,z; y=x*x; z=1/exp(y);}void main(){ double a=0,b=1.0; int i,n; double h=b-a; double p,q,sum=0,
printf("请确定所需的精度:");
scanf("%lf",&p);
double T[101],x[100]; T[1]=(fun(a)+fun(b))*(h/2.0); x[0]=a; for(n=1;n&100;){
for(i=0;i&=n-1;i++){
sum+=fun(x[i]+h/2.0);
x[i+1]=x[i]+h/2.0;
T[2*n]=T[n]/2.0+(h/2.0)*
q=T[2*n]-T[n];
area=T[2*n];
if(fabs(q)&p)
} printf("\n所为成的面积是:%lf",area); }
真心求解啊
拿vb算了算,差不多0.7,偶也!0.007
这是数值分析啊
关键是递推公式看不懂
建议楼主用自适应Simpson公式算积分
为什么看了这么多贴子,很多都喜欢把函数定义在最前面,main函数写在最后,直接调用函数。
长姿势了,原来变步长是这样的啊试试我这个,已经可以了,没看你的代码,看不懂// Console-Test.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include "math.h" double fun(double x){double y,z;y=x*x;z=1/exp(y);} int _tmain(int argc, _TCHAR* argv[]){ double p,h; double a=0,b=1; double t1,t2;
long n,i,step=0; printf("请确定所需的精度:");
scanf("%lf",&p);
h=b-a; t1=(fun(a)+fun(b))*h/2; t2=t1; n=1;
double sum=0;
for(i=0;i&n;i++)
sum+=fun(a+(b-a)/n*i+h/2);
t2=t1/2+h/2*
h/=2; }while(fabs(t2-t1)&=p);
printf("\n所为成的面积是:%.10lf\nstep=%ld",t2,step);
scanf("%lf",&p); scanf("%lf",&p); return 0;}
我用的是simpson公式写的,楼主也学了吧#include&cstdio&#include&cmath&#include&iostream&double F(double x){ double y=x*x; double z=1/exp(y);}double simpson(double a,double b){ double c=a+(b-a)/2; return (F(a)+4*F(c)+F(b))*(b-a)/6;}double asr(double a,double b,double eps,double A){ double c=a+(b-a)/2; double L=simpson(a,c),R=simpson(c,b); if(fabs(L+R-A)&=15*eps)return L+R+(L+R-A)/15.0; return asr(a,c,eps/2,L)+asr(c,b,eps/2,R);}double asr(double a,double b,double eps){ return asr(a,b,eps,simpson(a,b));}int main(){ printf("%lf\n",asr(0.0,1.0,1e-5)); system("pause"); return 0;}结果是0.746824
正太好认真啊啊啊啊!兰州好萌的
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或用指针编写程序,用梯形法编程序求定积分
16-06-05 &匿名提问

我要回帖

更多关于 定积分计算例题 的文章

 

随机推荐