如何针对不同的角度运行ode45

时间:2014-04-18 17:30:04

标签: matlab ode differential-equations

我正在尝试解决二阶微分方程。我已经设法使用matlab中的ode45解决了一个角度(函数中有一个因素取决于角度)。在我的程序脚本中,ode45的输入参数也有相同的角度。

我想要的是解决不同角度的方程。我测试了一个for循环,我只是通过ode45运行给定的角度(作为输入参数),这样可以绘制出不同的曲线。 但是我不确定它是多么正确,因为我没有改变ode45解决的函数中的角度。

所以问题是我如何为每个循环改变我函数内的角度。

1 个答案:

答案 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