微分方程数值解-打靶法求边值问题_第1页
微分方程数值解-打靶法求边值问题_第2页
微分方程数值解-打靶法求边值问题_第3页
微分方程数值解-打靶法求边值问题_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微分方程数值解 实验七学号班级姓名指导教师实验题目打靶法求边值问题评 分实验要求: (1) 掌握打靶法求边值问题问题: 用打靶法求如下边值问题2、实验内容:(求解过程,包括简单的分析,求解程序代码,所得结果)程序代码:(1)先猜测初值,调用T7函数龙格库塔算法计算出该初值下的边界值,与题中的边界值相减,计算差值,既F(s)=yb-y(b).function y=f(a)%利用龙格库塔算法计算F(s)=yb-y(b)qj=1,2;cz=0,a;t,w=T7(qj,cz,0.01);y=0-w(end,2);end(2)在ydot函数中输入题目中的微分方程,用龙格库塔算法计算预设初值下的边界值。function t,w=T7(qj,cz,h)%求解实验7问题%qj为所求区间%cz=y1,y2为y1,y2的初值%h为步长%eg:t,w=T7(qj,cz,0.01); n=round(qj(2)-qj(1)/h); t=zeros(n,1); w=zeros(n,length(cz); t(1)=qj(1); w(1,:)=cz; for i=1:n t(i+1)=t(i)+h; w(i+1,:)= RungeKutta(t(i),w(i,:),h); endend function y = RungeKutta(t,w,h)%龙格库塔法求解微分方程%h为步长 k1= ydot(t,w); k2= ydot(t+h/2,w+h/2*k1); k3= ydot(t+h/2,w+h/2*k2); k4= ydot(t+h,w+h*k3); y=w+h/6*(k1+2*k2+2*k3+k4);end function z=ydot(t,y)%输入带求解的微分方程z(1) = (4-2*y(2)/(t3);z(2) = -exp(y(1);end(3)利用二分法不断修正,调整初值,直到打靶打中边界值。function sol=dbf(a,b,tol)%打靶法求解边值%f:F(s)=yb-y(b);%a,b:猜想初值%tol:容忍误差%sol:方程f(x)=0的根%eg:sol=dbf(0,2.5,0.001)if sign(f(a)*sign(f(b)0 error(Please let f(a)*f(b)tol if f(k(i,1)+k(i,2)/2)=0 break end if f(k(i,1)*f(k(i,1)+k(i,2)/2) sol=dbf(0,1,0.001)? Error using = dbf at 8Please let f(a)*f(b) sol=dbf(0,2.5,0.001)sol = 1.4999(3)进一步缩小误差范围令tol=0.0001: sol=dbf(0,2.5,0.0001)sol = 1.5000(4)验证: t,w=T7(1,2,0,1.5000,0.01);w(end,2)ans = -3.8775e-010该值十分接近0,既与题中y2(2)=0一致。3、实验总结:(实验体会,知识掌握情况,对实验环境的要求等)本次实验的函数间调用关系较为复杂,需要仔细分析打靶法的原理与运算的过程才能弄清程序的编写方法。先猜测初值,补全初值,利用龙格库塔算法解在该初值下的微分方程,然后再计算猜测的初值的边

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论