matlab实现复化Newton-Cotes公式求积分的程序应用和代码

matlab实现复化Newton-Cotes公式求积分的程序应用和代码

ID:39454687

大小:37.01 KB

页数:3页

时间:2019-07-03

matlab实现复化Newton-Cotes公式求积分的程序应用和代码_第1页
matlab实现复化Newton-Cotes公式求积分的程序应用和代码_第2页
matlab实现复化Newton-Cotes公式求积分的程序应用和代码_第3页
资源描述:

《matlab实现复化Newton-Cotes公式求积分的程序应用和代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、执行函数为mymulNewtonCotes.m1、使用方法:Step1:在MATLAB命令窗口输入被积函数。输入应为:ft=@(t)t.*exp(t^2/2)。Step2:执行函数。输入形式为mymulNewtonCotes(ft,a,b,m,n);其中ft—被积函数,此体重ft=@(t)t.*exp(t^2/2),已经在第一步赋值;a—积分下限,本题中为0;b—积分上限,本题中为1;m—将区间[a,b]等分的子区间数量,本题可选为10;n—采用的Newton-Cotes公式的阶数,必须满足n<8,否则积分没法保证稳定性。当n=1时,即为复化梯形公式;n=2时

2、,即为复化复化辛普森公式。所以,分别输入mymulNewtonCotes(ft,0,1,10,1)和mymulNewtonCotes(ft,0,1,10,2)就可以得到两种方法的积分计算结果。2、计算结果而根据积分运算,可得:说明复化梯形和复化辛普森公式计算出的结果基本一致,与实际结果相符。3、程序代码functionyy=mymulNewtonCotes(ft,a,b,m,n)%复化Newton-Cotes数值积分公式,即在每个子区间上使用Newton-Cotes公式,然后求和,%参考的输入形式为mymulNewtonCotes(ft,0,1,10,2)%参

3、数说明:%ft——被积函数,此题中ft=@(t)t.*exp(t^2/2)%a——积分下限%b——积分上限%m——将区间[a,b]等分的子区间数量%n——采用的Newton-Cotes公式的阶数,必须满足n<8,否则积分没法保证稳定性%(1)n=1时为复化梯形公式%(2)n=2时为复化辛普森公式xx=linspace(a,b,m+1);forl=1:ms(l)=myNewtonCotes(ft,xx(l),xx(l+1),n);endyy=sum(s);function[y,Ck,Ak]=myNewtonCotes(ft,a,b,n)%牛顿-科特斯数值积分公式

4、%Ck——科特斯系数%Ak——求积系数%y——牛顿-科特斯数值积分结果xk=linspace(a,b,n+1);forj=1:n+1ff(j)=ft(xk(j));end%计算科特斯系数fori=1:n+1k=i-1;Ck(i)=(-1)^(n-k)/factorial(k)/factorial(n-k)/n*quadl(@(t)intfun(t,n,k),0,n);end%计算求积系数Ak=(b-a)*Ck;%求和算积分y=Ak*ff';functionf=intfun(t,n,k)%科特斯系数中的积分表达式f=1;fori=[0:k-1,k+1:n]f=f

5、.*(t-i);end

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。