Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-07-16
年龄: 43
帖子: 10
声望力: 17 ![]() |
![]()
一般来说,要求解微分方程,首先定义一个方程,然后调用ode(例如ode45)就可以了。例如,我要求解Duffing方程,首先定义微分方程:
function du=duffin(t,x) f=1; alpha=1; beta=10; gama=100; omiga=3.5; epsilon=0.1; du=[ x(2);... epsilon-alpha*x(2)+beta*x(1)-gama*x(1)*x(1)*x(1)+f*cos(x(3));... omiga]; 然后调用 [t,x]=ode45('duffin',[0,10],[0.1,0.1,2]) 就可以得到不同时刻t对应的x的解。 现在我的问题是:在Duffing方程定义中,我需要epsilon是一个变量,而不是常量,那么应该如何传递参数epsilon呢?也就是说,我在另一段程序中调用ode45解方程,而epsilon的值是在这段程序中动态给出的,如果传递这个epsilon的值呢? 谢谢解答啊~ |
![]() |
![]() |