24小时热门版块排行榜    

CyRhmU.jpeg
查看: 414  |  回复: 1

caroly77

金虫 (小有名气)

[求助] matlab解常微分方程数值解有一个问题想请教

用ode45来求解常微分方程数值解,函数定义中如果有参数,那么在调用的时候如何传递呢?我的程序如下,请问要如何修改才能实现我的目标呢?
定义函数文件vdp.m
function dx=vdp(t,x,k10,k12,k21)
dx=zeros(2,1);
dx(1)=-k10*x(1)-k12*x(1)+k21*x(2);
dx(2)=k12*x(1)-k21*x(2);
求解所定义的常微分方程
[t,x]=ode45(@vdp,[t1,tf],[x1,x2]);
其中k10,k12,k21在每次求解的时候,都会有新的参数值需要带入计算,而且每一次的求解,方程的初始值x1,x2也都会改变。
处于这样的目的,我的命令应该怎么写呢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
定义函数文件vdp.m
function dx=vdp(t,x,k)
dx=zeros(2,1);
dx(1)=-k(1)*x(1)-k(2)*x(1)+k(3)*x(2);
dx(2)=k(2)*x(1)-k(3)*x(2);
求解所定义的常微分方程
[t,x]=ode45(@vdp,[t1,tf],[x1,x2],[],[k1,k2,k3]);
k10,k12,k21==k1,k2,k3
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2012-08-27 19:25:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 caroly77 的主题更新
信息提示
请填处理意见