二阶非线性常微分方程的打靶法matlab实现

二阶非线性常微分方程的打靶法matlab实现

ID:16204168

大小:240.00 KB

页数:5页

时间:2018-08-08

二阶非线性常微分方程的打靶法matlab实现_第1页
二阶非线性常微分方程的打靶法matlab实现_第2页
二阶非线性常微分方程的打靶法matlab实现_第3页
二阶非线性常微分方程的打靶法matlab实现_第4页
二阶非线性常微分方程的打靶法matlab实现_第5页
资源描述:

《二阶非线性常微分方程的打靶法matlab实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、二阶非线性常微分方程的打靶法1.问题:试用打靶法求二阶非线性常微分方程亮点边值的数值解:要求用Matlab编程计算,请给出一些例子,验证你的算法与程序的正确性。2.打靶法分析:非线性打靶法:非线性打靶法的基本原理是将两点边值问题(1)转化为下面形式的初值问题令z=y′,将上述二阶方程降为一阶方程组3.Matlab源代码:创建M文件:functionys=dbf(f,a,b,alfa,beta,h,eps)ff=@(x,y)[y(2),f(y(1),y(2),x)];xvalue=a:h:b;%x取值范围n=length(xvalue)s0=a-0.01;%选取适当的s的初值x0

2、=[alfa,s0];%迭代初值flag=0;%用于判断精度y0=rk4(ff,a,x0,h,a,b);ifabs(y0(1,n)-beta)<=epsflag=1;y1=y0;elses1=s0+1;x0=[alfa,s1];y1=rk4(ff,a,x0,h,a,b);ifabs(y1(1,n)-beta)<=epsflag=1;endendifflag~=1whileabs(y1(1,n)-beta)>epss2=s1-(y1(1,n)-beta)*(s1-s0)/(y1(1,n)-y0(1,n));x0=[alfa,s2];y2=rk4(ff,a,x0,h,a,b);s0

3、=s1;s1=s2;y0=y1;y1=y2;endendxvalue=a:h:b;yvalue=y1(1,:);ys=[xvalue',yvalue'];functionx=rk4(f,t0,x0,h,a,b)%rung-kuta法求每个点的近似值(参考大作业一)t=a:h:b;%迭代区间m=length(t);%区间长度t(1)=t0;x(:,1)=x0;%迭代初值fori=1:m-1L1=f(t(i),x(:,i));L2=f(t(i)+h/2,x(:,i)'+(h/2)*L1);L3=f(t(i)+h/2,x(:,i)'+(h/2)*L2);L4=f(t(i)+h,x(:

4、,i)'+h*L3);x(:,i+1)=x(:,i)'+(h/6)*(L1+2*L2+2*L3+L4);end4.举例求二阶非线性方程的边值问题:在matlab控制台中输入:f=@(x,y,z)(x^2+z*x^2);x0l=0;x0u=2*exp(-1);alfa=0;beta=2;h=0.01dbf(f,x0l,x0u,y0l,y0u,h,1e-6);>>y=ans(:,2);x=ans(:,1);>>plot(x,y,'-r')>>结果:再输入:>>m=0:0.01:2;>>n=m.*exp(-1/2*m);>>plot(n,m)>>plot(x,y,'-r',n,m,'

5、-b')5.结论:根据得到的图像,可以看到在x的初值一起末值也就是α和β两点做到了较好的逼近,但是中间部分的逼近不是很理想。我想可能是在编程的过程当中可能算法上有些问题。以后有机会再改进。

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

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

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