资源描述:
《常微分方程的数值解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验4常微分方程的数值解几道解方程的题——重要1.x2y’’+xy’+(x2-n2)y=0y=2,y’=-(贝赛尔方程,令n=0.5),精确解y=sinx解:首先将高阶方程装降阶化简为一阶常微分方程组令y1=y’,令y2=y1’=y’’将n=0.5代入,则原方程转化为:y1’=y2y1=2,y2=-functiondy=fangcheng(x,y)dy=[y(2);-y(2)/x-(1-1/(4*x^2))*y(1)];xs=pi/2:0.1:100;y0=[2,-2/pi];[x,y]=ode45(@fangcheng,xs,y0)
2、;[x,y]plot(x,y(:,1)),grid20012.设用数值解法算出y(1)=(精确到4位小数),你用的方法是,调用的Matlab命令是,算法精度为。functiondy=fangcheng2(x,y)dy=[y(2);y(2)*sin(x)-y(1)*exp(x)];xs=0:0.01:1;y0=[1,0];[x,y]=ode45(@fangcheng2,xs,y0);[x,y]20001.设用数值解法算出y(1)=,你用的方法是,调用的Matlab命令是,算法精度为。functiondy=fangcheng1(x,y)d
3、y=[y(2);y(1)*sin(x)];xs=[0,1];y0=[1,0];[x,y]=ode45(@fangcheng1,xs,y0);[x,y]题目11.x2y’’+xy’+(x2-n2)y=0y=2,y’=-(贝赛尔方程,令n=0.5),精确解y=sinx解:首先将高阶方程装降阶化简为一阶常微分方程组令y1=y’,令y2=y1’=y’’将n=0.5代入,则原方程转化为:y1’=y2y1=2,y2=-(1)用向前欧拉公式:y1(n+1)=y1(n)+h*y2(n)y2(n+1)=y2(n)+h*[]y1(0)=2,y2(0)=-
4、,x(n+1)=+n*h,h为步长编程如下:clearallx=[pi/2:0.1:pi/2+100-0.05];y1=2;y2=-2/pi;fori=1:999y1(i+1)=y1(i)+0.1*y2(i);y2(i+1)=y2(i)-0.1*(y2(i)/x(i)+(1-0.25/x(i)^2)*y1(i));endplot(x,y1),grid但如果步长选得不一样(横坐标都从开始,到100左右结束,但中间选的点也不太一样),即使采用同样的迭代公式,绘出的曲线却有很大不同:程序:clearallx=[pi/2:0.01*pi:30
5、*pi];y1=2;y2=-2/pi;fori=1:2950y1(i+1)=y1(i)+0.01*pi*y2(i);y2(i+1)=y2(i)-0.01*pi*(y2(i)/x(i)+(1-0.25/x(i)^2)*y1(i));endplot(x,y1),grid我个人认为,可能是因为欧拉公式每算一次都会产生误差,如果取的点正好位置不太合适,会导致误差一步步增大,累加起来,就像蝴蝶效应一样,会产生和真实状况截然不同的结果。这也是用数值方法求解方程最怕出现的问题,也是应该解决的问题。这说明向前欧拉公式并不是一种很好的计算方法,误差较大
6、(只有1阶精度),而且容易失真。这一点在下面还要说明。(2)龙格—库塔方法y1’=y2y1=2,y2=-编写如下M文件:functiondx=suan(t,x)%建立名为suan的函数M文件dx=[x(2);-x(2)/t-(1-0.25/t^2)*x(1)];%表示方程组用4级5阶龙格—库塔公式进行计算。编程如下:clearallts=[pi/2:0.1:100];%使用龙格—库塔方法x0=[2,-2/pi];[t,x]=ode45(@suan,ts,x0)plot(t,x(:,1)),grid,title('龙格-库塔方法'),p
7、ause%绘出精确解y=sinx图像y=sin(t).*sqrt(2*pi./t)plot(t,y),grid,title('精确解')绘出曲线如下:比较分析:从曲线上可以看出,在数值求解贝赛尔方程时,龙格—库塔方法(4级5阶龙格—库塔公式)的结果与精确解y=sinx非常接近,产生震荡,并且随x的增大振幅逐渐减小;而用欧拉方法(向前欧拉公式)的计算结果却与精确解有较大差异,虽然也产生了震荡,但在x稍大的情况下,振幅随x的增大而增大。这是因为向前欧拉公式只有1阶的精度,而4级5阶龙格—库塔公式有5阶的精度,一般情况下,肯定用后者计算更接
8、近精确解。而且从本例可以看出,向前欧拉公式并不是一种很好的计算方法,误差较大,甚至导致结果失真,所以还是应该用龙格—库塔方法比较好。题目2【题目1】(课本习题第四章第2题)小型火箭初始重量为1400kg,其中包括1080