我正在尝试解决二阶微分方程。我已经设法使用matlab中的ode45解决了一个角度(函数中有一个因素取决于角度)。在我的程序脚本中,ode45的输入参数也有相同的角度。
我想要的是解决不同角度的方程。我测试了一个for循环,我只是通过ode45运行给定的角度(作为输入参数),这样可以绘制出不同的曲线。 但是我不确定它是多么正确,因为我没有改变ode45解决的函数中的角度。
所以问题是我如何为每个循环改变我函数内的角度。
答案 0 :(得分:0)
我相信你的问题与将参数传递给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中有关参数化函数的this document。