急.用matlab解非常系数的非分方程数值解.56.1*x*D2y+56.1*Dy+56.626*y=0x取(0,0.02).x=0时Dy=0,x=0.02时y=200.我假设x=0时y=100来解,解不出来,y显示全部为Nan.我的程序:M文件:function yp=vdpol(x,y);yp=[y(2);-(56.1*y

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/25 07:26:17
急.用matlab解非常系数的非分方程数值解.56.1*x*D2y+56.1*Dy+56.626*y=0x取(0,0.02).x=0时Dy=0,x=0.02时y=200.我假设x=0时y=100来解,解不出来,y显示全部为Nan.我的程序:M文件:function yp=vdpol(x,y);yp=[y(2);-(56.1*y
xU[oG+~hXeEƑ%/K!`W0%6wK43Ev{-< eW.CˮOnGpGZ>p Q}? ,*K=wz+h-otaO& 6vEcϓW5V#ͰP/Mw nǨ,tR"TnmX* զؑ Fd=;1ei&#n&p86:4E ) X?X,h -AilH8*qXjk`Z+@$z$44,[P G[@f~'30"͊>ADS;䙉`X9,UIJW13B@bK,c#4lf  `HV&|e"P0FxCC"w+=^R G_V?-p\.^ѱrYq6f35D3b -մE\*g,ԓ<;8 u`ZiI҈ wa@X EVi^@8xGyC-DO(2jJk.1tx-TK`̺"z>CdC[͐ m6ḘI·VVoFM/X9#6}# _7IWF럳\)W7z!";p@h?7Oo:Amj"AsIvW0_Į

急.用matlab解非常系数的非分方程数值解.56.1*x*D2y+56.1*Dy+56.626*y=0x取(0,0.02).x=0时Dy=0,x=0.02时y=200.我假设x=0时y=100来解,解不出来,y显示全部为Nan.我的程序:M文件:function yp=vdpol(x,y);yp=[y(2);-(56.1*y
急.用matlab解非常系数的非分方程数值解.56.1*x*D2y+56.1*Dy+56.626*y=0
x取(0,0.02).x=0时Dy=0,x=0.02时y=200.
我假设x=0时y=100来解,解不出来,y显示全部为Nan.
我的程序:
M文件:
function yp=vdpol(x,y);
yp=[y(2);-(56.1*y(2)+56.626*y(1))/56.1/x];
程序:
[x,y]=ode45('vdpol',[0,0.02],[100,0]);
y1=y(:,1);
y2=y(:,2);
plot(x,y1,x,y2,'--')
pause,
plot(y1,y2),grid,
做出图没曲线.

急.用matlab解非常系数的非分方程数值解.56.1*x*D2y+56.1*Dy+56.626*y=0x取(0,0.02).x=0时Dy=0,x=0.02时y=200.我假设x=0时y=100来解,解不出来,y显示全部为Nan.我的程序:M文件:function yp=vdpol(x,y);yp=[y(2);-(56.1*y
“假设x=0时y=100来解”是不合理的,
因为 x=0时Dy=0,x=0.02时y=200 已经给定边界条件,你再给它假设边界条件时,解就不一样了.
另外,ode只能计算已知初值的微分方程(如 y(0) = y0, y'(0) = y1, ...),对于y(0.02) = 200的边界值,需要转化为初值,再求解.不能直接假设.
而且,这个微分方程不能从 0 开始计算,如果从 0 开始,yp(2)由于 ''/56.1/x''会变为无穷,因而后面再迭代会产生 inf 参与的计算,从而y显示为Nan.
解法如下:
56.1*x*y''+56.1*y'+56.626*y=0,代入 x = 0,
得到 56.1*y'(0) + 56.626*y(0) = 0,
因为 y'(0) = 0,所以 y(0) = 0,(初值y(0))
也就是 ODE45 的初始条件为:y(0) = 0,y'(0) = 0
虽然得到了初始值,但是还是有问题,因为如果从 0 开始
第一次代入时,
y(1) = y(0) = 0;
y(2) = y'(0) = 0;
yp(2) = -(56.1*y(2)+56.626*y(1))/56.1/x
= -(56.1*0+56.626*0)/56.1/0 (出现了 0/0,因而后面无论怎么算都是 NaN)
= NaN
以下是我修改的代码,一样没有曲线,因为问题就是如上所述,函数在 0 时没有意义
function my_solve()
[x,y]=ode45(@vdpol,[0,0.02],[0,0]);
y1=y(:,1);
y2=y(:,2);
figure;
plot(x,y1,x,y2,'--');
figure;
plot(y1,y2);
end
function yp=vdpol(x,y)
yp=[y(2);-(56.1*y(2)+56.626*y(1))/56.1/x];
end

虽然米看懂,但我觉得你X,Y的赋值貌似倒过来了

很遗憾,我不会

急.用matlab解非常系数的非分方程数值解.56.1*x*D2y+56.1*Dy+56.626*y=0x取(0,0.02).x=0时Dy=0,x=0.02时y=200.我假设x=0时y=100来解,解不出来,y显示全部为Nan.我的程序:M文件:function yp=vdpol(x,y);yp=[y(2);-(56.1*y 2阶常系数线性微分非分方程的通解为什么是它的一个特解加上它对应的齐次方程的通解? 英语翻译翻译好的非分 用matlab解方程求matlab代码. a的平方等于24,解方程并且用普通方法解,非常急! 数十年如一日的意思非常急! matlab用最小二乘法求解矛盾方程组系数的程序,矛盾方程组就是说方程个数大于未知数的个数 求用MATLAB解下方程组,急!求过程求结果求:用MATLAB解五个方程的五个未知数,求源程序和结果.财富值不多,望好人回答! 请问用Matlab怎么求这个方程y=5x+e^(-x)的解啊?急交作业,谢谢! 用matlab怎么解方程 用matlab 解超越方程~ 怎么用matlab解含有字母系数的方程组的解,举个简单例子 matlab解矩阵方程出现复数解怎么处理?就是方程BX=W,其中B是系数方程,X为未知数方程(只关心其中的x),W是结果.但是W中的一些元素也含有所求的未知数x.用matlab解算后,出来的x是复数,可是这个 matlab求方程数值解我用matlab的solve求方程组,结果是一个符号解,我想得到方程的数值解,应该怎么办?因为符号解的解非常复杂,所以手工代人几乎不可能.matlab编程:[x5,y5]=solve('y5=a1*x5+c1','y5=a2*x5+ matlab中用平方根,改进的平方根求解系数矩阵正定的方程的函数是哪个? 《行道树》的课文介绍,非常非常非常非常非常非常非常非常非常非常急! 一个数的五倍减去这个数等于66,求这个数.{用方程解}!急 急求matlab二阶抛物型方程的有限元程序