微分方程数值解 实验七学号班级姓名指导老师实验题目打靶法求边值问题评 分实验要求: (1)掌握打靶法求边值问题问题: 用打靶法求如下边值问题2、实验内容:(求解过程,包括简单得分析,求解程序代码,所得结果)程序代码:(1)先猜想初值,调用 T7 函数龙格库塔算法计算出该初值下得边界值,与题中得边界值相减,计算差值,既 F(s)=yb—y(b)、fun c t ion y=f(a)%利用龙格库塔算法计算F(s)=y b—y(b)qj=[1,2];c z=[0,a];[t,w]=T7(qj,cz,0、01);y=0—w(en d,2);end(2)在 ydot 函数中输入题目中得微分方程,用龙格库塔算法计算预设初值下得边界值。functio n [t,w]=T7(q j,cz,h)%求解实验 7 问题%q j为所求区间%c z=[y1,y2]为y1,y2 得初值%h 为步长%e g:[t,w]=T7([q j,cz,0、0 1); n=r o und((qj(2)—qj(1))/h); t=zeros(n,1); w=zeros(n,l e ngth(cz)); t(1)=qj(1); w(1,:)=cz; f o r i=1:n t(i+1)=t(i)+h; w(i+1,:)= Rung eK u t ta(t(i),w(i,:),h); endendfu n ct i on y = RungeKutta(t,w,h)%龙格—库塔法求解微分方程%h为步长 k1= ydot(t,w); k2= yd o t(t+h/2,w+h/2*k1); k 3= ydo t(t+h/2,w+h/2*k 2); k4= ydot(t+h,w+h*k 3); y=w+h/6*(k 1+2*k2+2*k3+k 4);en df u nct ion z=yd o t(t,y)%输入带求解得微分方程z(1) = (4-2*y(2))/(t^3);z(2) = -exp(y(1));e nd(3)利用二分法不断修正,调整初值,直到打靶打中边界值.fu n ction s ol=db f(a,b,tol)%打靶法求解边值%f:F(s)=y b-y(b);%a,b:猜想初值%t ol:容忍误差%sol:方程 f(x)=0 得根%eg:s o l=dbf(0,2、5,0、00 1)if si gn(f(a))*sign(f(b))>0 e rror('Pleas e let f(a)*f(b)<0')endi=1;k(i,1)=a;k(i,2)=b;w h i l e a bs(k(i,2)-k(i,1))>t o l if f((k(i,1)+k(i,2))/2)==0 br e ak en d if f(k(i,1))*f((k(i,1)+k(i,2))/2)〈0 k(i+1,1)=k(i,1); k(i+1,2)=(k(i,1)+k(i,2))/2; else k(i+1,2)=k(i,2); k(i+1,1)=(k(i,1)+k(i...