Matlab求解方程 y=f(x);f(0)=0; y''=(1+y'^2)^(3/2); 求解区间[0,1] 解得好的

Matlab求解方程 y=f(x);f(0)=0; y''=(1+y'^2)^(3/2); 求解区间[0,1] 解得好的再加50分!
我小资吗 1年前 已收到1个回答 举报

倾听雨的叹息 幼苗

共回答了21个问题采纳率:90.5% 举报

解此方程还需补充一个初始条件.
设此初始条件为f '(0)=-0.15
dy = @(x,y) [y(2);(1 + y(2)^2)^(3/2)];
[X,Y] = ode45(dy,[0 1],[0 -0.15]);
plot(X,Y(:,1),'-o')

1年前 追问

5

我小资吗 举报

原来是这样啊,请问这个格式dy = @(x,y) [y(2);(1 + y(1)^2)^(3/2)]; 方括号里面就是等式左右吧,那如果等式左边略复杂比如y(2)*sin(y(2))呢?麻烦你了

举报 倾听雨的叹息

如果y''= y'*sin(y')、f '(0) = -0.15 求解区间[0,100] 则 dy = @(x,y) [y(2);y(2)*sin(y(2))]; [X,Y] = ode45(dy,[0 100],[0 -0.15]); plot(X,Y(:,1),'-o')

我小资吗 举报

不好意思,我的意思是原方程如果改成y‘’*sin(y‘’)==(1+y'^2)^(3/2); 这样还能像上面那样计算吗?麻烦你了!

举报 倾听雨的叹息

不能。 如sin(y‘’)=(1+y'^2)^(3/2),则与上面的微分方程不是同一类型。 你可查阅隐式微分方程解法ode15i相关的资科。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.031 s. - webmaster@yulucn.com