解初值问题各方种法比较.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解初值问题各方种法比较

解初值问题各种方法比较 一、实验目的:掌握了解各种解初值问题的方法,体会步长对问题解的影响。 二、实验内容:给定初值问题 其精确解为 三、实验要求: 分别按 (1)欧拉法,步长; (2)改进的欧拉法,步长; (3)四阶标准龙格-库塔法,步长; 编写程序求在节点处的数值解及误差,并比较各方法的优缺点。用MATLAB中的内部函数dsolve求此常微分方程初值问题的解并与上述结果进行比较。 四、实验过程: 1、(1)编写主函数。打开Editor编辑器,输入欧拉法法主程序语句: function [h,k,X,Y,P]=Qeuler1(funfcn,x0,y0,b,n,tol) x=x0; h=(b-x)/n; X=zeros(n,1); y=y0; Y=zeros(n,1); k=1; X(k)=x; Y(k)=y; for k=2:n+1 fxy=feval(funfcn,x,y); delta=norm(h*fxy,inf); wucha=tol*max(norm(y,inf),1.0); if delta=wucha x=x+h; y=y+h*fxy; X(k)=x;Y(k)=y; end plot(X,Y,rp) grid xlabel(自变量 X), ylabel(因变量 Y) title(用向前欧拉(Euler)公式计算dy/dx=f(x,y),y(x0)=y0在[x0,b]上的数值解) end P=[X,Y]; 以文件名Qeuler1.m保存。 (2)编写主函数。打开Editor编辑器,输入改进的欧拉法法主程序语句: function [X,Y,n,P]= odtixing1(funfcn,x0,b,y0,h,tol) n=fix((b-x0)/h); X=zeros(n+1,1); Y=zeros(n+1,1); k=1; X(k)=x0; Y(k,:)=y0; Y1(k,:)=y0; % 绘图. clc,x0,h,y0 % 产生初值. for i=2:n+1 X(i)=x0+h; fx0y0=feval(funfcn,x0,y0); Y(i,:)=y0+h*fx0y0; fxiyi=feval(funfcn,X(i),Y(i,:)); Y1(i,:)=y0+h*(fxiyi+fx0y0)/2; % 主循环. Wu=abs(Y1(i,:)-Y(i,:)); while Wutol p=Y1(i,:), fxip=feval(funfcn,X(i),p); Y1(i,:)=y0+h*(fx0y0+fxip)/2,P1=Y1(i,:), Y(i,:)=p1; end x0=x0+h; y0=Y1(i,:); Y(i,:)=y0; plot(X,Y,ro) grid on xlabel(自变量 X), ylabel(因变量 Y) title(用梯形公式计算dy/dx=f(x,y),y(x0)=y0在[x0,b]上的数值解) end X=X(1:n+1); Y=Y(1:n+1,:); n=1:n+1; P=[n,X,Y] 以文件名odtixing1.m保存。 (3)编写主函数。打开Editor编辑器,输入四阶标准龙格-库塔法主程序语句: function [k,X,Y,fxy,wch,wucha,P]=RK4 (funfcn,fun,x0,b,C,y0,h) x=x0; y=y0;p=128; n=fix((b-x0)/h); fxy=zeros(p,1); wucha=zeros(p,1); wch=zeros(p,1); X=zeros(p,1); Y=zeros(p,length(y)); k=1; X(k)=x; Y(k,:)=y; % 绘图. clc,x,h,y %计算 %fxy=fxy(:); for k=2:n+1 x=x+h;a2=C(5); a3=C(6); a4=C(7);b21=C(8); b31=C(9); b32=C(10); b41=C(11); b42=C(12); b43=C(13);c1=C(1); c2=C(2); c3=C(3); c4=C(4); x1=x+a2*h; x2=x+a3*h; x3=x+a4*h; k1=feval(funfcn,x,y); y1=y+b21*h*k1; k2=feval(funfcn,x1,y1); y2=y+b31*h*k1+b32*h*k2; k3=feval(funfcn,x2,y2); y3=y+b41*h*k1+b42*h*k2+b43*h*k3; k4=feval(funfcn,x3,y3); fxy(k)=feval(fun,x); y=y+h*

文档评论(0)

weixin98 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档