matlab实现复化NewtonCotes公式求积分的程序应用和代码.docx

上传人:小飞机 文档编号:3161246 上传时间:2023-03-11 格式:DOCX 页数:3 大小:37.15KB
返回 下载 相关 举报
matlab实现复化NewtonCotes公式求积分的程序应用和代码.docx_第1页
第1页 / 共3页
matlab实现复化NewtonCotes公式求积分的程序应用和代码.docx_第2页
第2页 / 共3页
matlab实现复化NewtonCotes公式求积分的程序应用和代码.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《matlab实现复化NewtonCotes公式求积分的程序应用和代码.docx》由会员分享,可在线阅读,更多相关《matlab实现复化NewtonCotes公式求积分的程序应用和代码.docx(3页珍藏版)》请在三一办公上搜索。

1、matlab实现复化NewtonCotes公式求积分的程序应用和代码执行函数为mymulNewtonCotes.m 1、使用方法: Step1:在MATLAB命令窗口输入被积函数tedt。 01t22输入应为:ft=(t)t.*exp(t2/2)。 Step2:执行函数。输入形式为mymulNewtonCotes(ft,a,b,m,n); 其中ft被积函数,此体重ft=(t)t.*exp(t2/2),已经在第一步赋值; a积分下限,本题中为0; b积分上限,本题中为1; m将区间a,b等分的子区间数量,本题可选为10; n采用的Newton-Cotes公式的阶数,必须满足n8,否则积分没法保证

2、稳定性。 当n=1时,即为复化梯形公式;n=2时,即为复化复化辛普森公式。 所以,分别输入mymulNewtonCotes(ft,0,1,10,1)和mymulNewtonCotes(ft,0,1,10,2)就可以得到两种方法的积分计算结果。 2、计算结果 而根据积分运算,可得: 111t2xx22=e2-e0=1.6487-1=0.6487 tedt=ed=edx=e0000211t22t22说明复化梯形和复化辛普森公式计算出的结果基本一致,与实际结果相符。 3、程序代码 function yy = mymulNewtonCotes(ft,a,b,m,n) % 复化Newton-Cotes数

3、值积分公式,即在每个子区间上使用Newton-Cotes公式,然后求和, % 参考的输入形式为mymulNewtonCotes(ft,0,1,10,2) % 参数说明: % ft被积函数,此题中ft=(t)t.*exp(t2/2) % a积分下限 % b积分上限 % m将区间a,b等分的子区间数量 % n采用的Newton-Cotes公式的阶数,必须满足n8,否则积分没法保证稳定性 % (1)n=1时为复化梯形公式 % (2)n=2时为复化辛普森公式 xx = linspace(a,b,m+1); for l = 1:m s(l) = myNewtonCotes(ft,xx(l),xx(l+1

4、),n); end yy = sum(s); function y,Ck,Ak = myNewtonCotes(ft,a,b,n) % 牛顿-科特斯数值积分公式 % Ck科特斯系数 % Ak求积系数 % y牛顿-科特斯数值积分结果 xk = linspace(a,b,n+1); for j = 1:n+1 ff(j) = ft(xk(j); end % 计算科特斯系数 for i=1:n+1 k=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; function f=intfun(t,n,k) % 科特斯系数中的积分表达式 f=1; for i=0:k-1,k+1:n f=f.*(t-i); end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号