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

上传人:壹****1 文档编号:510562953 上传时间:2023-08-05 格式:DOC 页数:6 大小:91.50KB
返回 下载 相关 举报
二阶非线性常微分方程的打靶法matlab实现_第1页
第1页 / 共6页
二阶非线性常微分方程的打靶法matlab实现_第2页
第2页 / 共6页
二阶非线性常微分方程的打靶法matlab实现_第3页
第3页 / 共6页
二阶非线性常微分方程的打靶法matlab实现_第4页
第4页 / 共6页
二阶非线性常微分方程的打靶法matlab实现_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《二阶非线性常微分方程的打靶法matlab实现》由会员分享,可在线阅读,更多相关《二阶非线性常微分方程的打靶法matlab实现(6页珍藏版)》请在金锄头文库上搜索。

1、二阶非线性常微分方程的打靶法1. 问题:试用打靶法求二阶非线性常微分方程亮点边值的数值解:要求用Matlab编程计算,请给出一些例子,验证你的算法与程序的正确性。2. 打靶法分析:非线性打靶法:非线性打靶法的基本原理是将两点边值问题(1)转化为下面形式的初值问题=化恥何=(7,=电令z = y ,将上述二阶方程降为一阶方程组|.r =-这毗片为在搀处的斜皋则间题转化为求育适的归使上述hmwJ问題的解满足原边值问题的右端边界茶件他 =p、从而得到边值问劇的解。因此把一个曲点边值问題的数值 解转化成一阶方程组初值问題的数值解。问題的关憶是如何去寻找合适的初始斜率的试探 值.假定相应才升的初值问題3

2、)的解为心,它是归的隐團数*且假定J(J; )随片是连续变化的,记为(雷J),这样我们耍找的勺就是下面非繼性方程的根XA = 0可以用迭代法去求卜述方程的抿如用劃线法-小 匕 7;: 护=2瓦3. Matlab源代码:创建M文件:function ys=dbf(f,a,b,alfa,beta,h,eps) ff=(x,y)y(2),f(y(l),y(2),x); xvalue=a:h:b;%諏值范围n=len gth(xvalue)s0=a-0.01; 泌取适当的s的初值 xO=al fa,s0;%迭代初值flag=0; %用于判断精度y0=rk4(ff,a,x0,h,a,b);if abs(

3、y0(1, n)-beta)=epsflag=1;y1=y0;elses1=s0+1;x0= alfa,s1;y1=rk4(ff,a,x0,h,a,b);if abs(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=s1;s1=s2;yO=y1;yi=y2;endendxvalue=a:h:b;yvalue=y1(1,:);ys=xvalue,yvalue;functionx=rk4(f,t0,x0,h,a,b)%rung-kuta法求

4、每个点的近似值(参考大作业一)t=a:h:b; %!代区间m=le ngth(t);%区间长度t(1)=t0;x(:,1)=x0;淞代初值for i=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(:,i)+h*L3);x(:,i+1)=x(:,i)+(h/6)*(L1+2*L2+2*L3+L4);end4. 举例求二阶非线性方程的边值问题:f= i/2+nj3|ITb(0) = 0?X2*) = 2求解可知:解为在matlab控制台中输入: f=(x,y,z)(xA2+z*xA2); x0l=0;x0u=2*exp(-1);alfa=0;beta=2;h=0.01dbf(f,x0l,x0u,y0l,y0u,h,1e-6); y=a ns(:,2);x=a ns(:,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,-b)5. 结论:根据得到的图像,可以看到在 x的初值一起末值也就是 a和B两点做到了较好的逼近,但是中间部分的逼近不是很理想。我想可能是在编程的过程当中可能算法上有些问题。以后有机会再改进。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号