matlab ode45 求方程(1+x^2)y''=2xy',y(0)=1,y'(0)=3 的数值解,我的运行不行,正确解答

来自:    更新日期:早些时候
高等数学 利用MATLAB求常微分方程的初值问题 (1+x^2)y''=2xy' y|x=0 =1 , y'|x=0 =3~

利用dsolve()函数,可求得常微分方程的初值问题 (1+x^2)y''=2xy'的解析解。
实现代码
syms y(x),D2y=diff(y,2);Dy=diff(y,1);
disp('常微分方程的解析解')
y=dsolve((1+x^2)*D2y==2*x*Dy,y(0)==1,Dy(0)==3)

【1】解析解
>>y=dsolve('Dy=-2*t*y','y(0)=1')

y = exp(-t^2)

【2】数值解

function numeric
clear;clc;
[t,y]=ode45(@fun,[0 3],1)
plot(t,y,'*',t,exp(-t.^2))%*为数值解,线段为解析解
function yhat=fun(t,y)
yhat=-2*t*y

结果:
t =

0
0.0750
0.1500
0.2250
0.3000
0.3750
0.4500
0.5250
0.6000
0.6750
0.7500
0.8250
0.9000
0.9750
1.0500
1.1250
1.2000
1.2750
1.3500
1.4250
1.5000
1.5750
1.6500
1.7250
1.8000
1.8619
1.9237
1.9856
2.0475
2.0996
2.1517
2.2039
2.2560
2.3023
2.3487
2.3950
2.4414
2.4837
2.5261
2.5684
2.6107
2.6500
2.6893
2.7286
2.7679
2.8047
2.8415
2.8784
2.9152
2.9364
2.9576
2.9788
3.0000


y =

1.0000
0.9944
0.9777
0.9506
0.9139
0.8688
0.8167
0.7591
0.6977
0.6341
0.5698
0.5063
0.4449
0.3865
0.3320
0.2821
0.2369
0.1968
0.1616
0.1312
0.1054
0.0837
0.0656
0.0510
0.0392
0.0312
0.0247
0.0194
0.0151
0.0122
0.0098
0.0078
0.0062
0.0050
0.0040
0.0032
0.0026
0.0021
0.0017
0.0014
0.0011
0.0009
0.0007
0.0006
0.0005
0.0004
0.0003
0.0003
0.0002
0.0002
0.0002
0.0001
0.0001

1.建立M文件vdp1001a.m如下:function dy=vdp1001a(x,y)dy=zeros(2,1);dy(1)=y(2);dy(2)=2*x*y(2)/(1+x^2); 2.取x0=0,xf=10,输入命令: [X,Y]=ode45('vdp1001a',[0 10],[1 3]);plot(X,Y(:,1),'-')3.结果如图





你写的程序只有一处错误
ode45中要取函数句柄,
[x,y]=ode(@sdre,[0 10],[1 3]);
我已仿真成功。有问题再问我

.建立M文件vdp1001a.m如下:
function dy=vdp1001a(x,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=2*x*y(2)/(1+x^2);

2.取x0=0,xf=10,输入命令:

[X,Y]=ode45('vdp1001a',[0 10],[1 3]);
plot(X,Y(:,1),'-'


matlab ode45 求方程(1+x^2)y''=2xy',y(0)=1,y'(0)=3 的数值解,我的运行不行,正确解答视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网