作业帮 > 数学 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/10 08:06:53
Matlab求解方程 y=f(x);f(0)=0; y''=(1+y'^2)^(3/2); 求解区间[0,1] 解得好的再加50分!
解此方程还需补充一个初始条件.
设此初始条件为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')
再问: 原来是这样啊,请问这个格式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相关的资科。