我正试图解一个二阶微分方程。我已经设法解决了一个角度(函数中有一个因素取决于一个角度)使用ode45在matlab中。在我的程序脚本中,也有与ode45的输入参数相同的角度。
我想要的是求解不同角度的方程。我用一个for -循环进行了测试,我只需在ode45中运行给定的角度(作为输入参数),这样就可以绘制出不同的曲线。但是,我不太确定它是否正确,因为我没有改变ode45解决的函数的角度。
所以问题是,对于每个循环,我是如何改变函数内部的角度的。
发布于 2014-04-18 17:51:14
我相信您的问题实际上与将参数传递给ode45使用的函数有关。定义ODE右侧的函数应该以角度作为输入参数,并且应该是形式的。
f(t,y,angle)然后,您应该将该函数包装在for循环中的另一个函数中,该函数会随着每次迭代而改变角度。例如:
for angle=linspace(0,pi,10)
odefun = @(t,y) f(t,y,angle);
[t_out, y_out] = ode45(odefun,[t0, tf],y0);
plot(t_out,y_out)
end还请参阅Mathworks中关于参数化函数的本文件。
https://stackoverflow.com/questions/23159068
复制相似问题