欢迎来到天天文库
浏览记录
ID:59007168
大小:53.50 KB
页数:4页
时间:2020-09-15
《C语言在数字仿真中的应用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1)问题描述:采用矩形法求定积分分析:利用矩形法可以求定积分其原理如图(9-1)所示。求函数f在(a,b)区间的定积分公式为:所需数据与算法如下。数据要求问题的输入:doublea; /*积分区间下限*/;doubleb; /*积分区间上限*/问题的输出:doublefx; /*积分结果*/程序设计:初始算法1.初始化积分区间(a,b)。2.如果把积分区间划分为100个格,则h=fabs(a-b)/100;3.因为区间划分为100个格,因此循环过程如下: for(i=0;i<100;i++) { fx=f(x+i*h+h/2); …… }C
2、语言程序代码如下:#include"stdio.h"#include"math.h"doublef(doublex){ returnsin(x);}doubleJifen(doublea,doubleb){ doubleh; doublefx; doublex; inti; doublesum=0; h=fabs(a-b)/100; x=a; for(i=0;i<100;i++) { fx=f(x+i*h+h/2); sum=sum+fx; } returnsum*h;}voidmain(){ doublea; doubleb; doublefx
3、; a=0; b=3.; fx=Jifen(a,b); printf("JiFenY=%f",fx);}运行结果 JiFenY=2.测试:如果将积分区间划分为1000个格,则循环条件改为i<1000,得到结果为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;i4、;s=h*(sin(a)+2s+sin(b))/2;/*复合梯形求定积分公式*/printf(“I=%lf”,s);}最后运行的结果是I=0.。
4、;s=h*(sin(a)+2s+sin(b))/2;/*复合梯形求定积分公式*/printf(“I=%lf”,s);}最后运行的结果是I=0.。
此文档下载收益归作者所有