C语言在数字仿真中的应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1)问题描述:采用矩形法求定积分分析:利用矩形法可以求定积分其原理如图(9-1)所示。求函数f在(a,b)区间的定积分公式为:所需数据与算法如下。数据要求问题的输入:doublea;/*积分区间下限*/;doubleb;/*积分区间上限*/问题的输出:doublefx;/*积分结果*/程序设计:初始算法1.初始化积分区间(a,b)。2.如果把积分区间划分为100个格,则h=fabs(a-b)/100;3.因为区间划分为100个格,因此循环过程如下:for(i=0;i100;i++){fx=f(x+i*h+h/2);……}C语言程序代码如下:#includestdio.h#includemath.hdoublef(doublex){returnsin(x);}doubleJifen(doublea,doubleb){doubleh;doublefx;doublex;inti;doublesum=0;h=fabs(a-b)/100;x=a;for(i=0;i100;i++){fx=f(x+i*h+h/2);sum=sum+fx;}returnsum*h;}voidmain(){doublea;doubleb;doublefx;a=0;b=3.1415926;fx=Jifen(a,b);printf(JiFenY=%f,fx);}运行结果JiFenY=2.000082测试:如果将积分区间划分为1000个格,则循环条件改为i1000,得到结果为2.00001。该测试说明积分区间划分越多,越能够接近正确结果。2)求定积分的复合梯形公式#include”math.h”main(){doublea,b,s,h;Intn=150,i;/*将积分区间分为150个小区间*/a=0;b=1;s=0;h=(b-a)/n;for(i=1;in;i++)/*累计求和*/s=s+sin(a+i*h);s=h*(sin(a)+2s+sin(b))/2;/*复合梯形求定积分公式*/printf(“I=%lf\n”,s);}最后运行的结果是I=0.459696。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功