用matlab 求解带符号的微分方程组

微分方程组为:dx/dt=k1*x*y+k2*x*zdy/dt=k1*x*y+k3*y*fdz/dt=k1*x*y-k2*z*x+k3*y*fdf/dt=k2*z*x-k... 微分方程组为:dx/dt=k1*x*y+k2*x*z
dy/dt=k1*x*y+k3*y*f
dz/dt=k1*x*y-k2*z*x+k3*y*f
df/dt=k2*z*x-k3*y*f
初始条件为:x(0)=x0,y(0)=y0,z(0)=0,f(0)=0
式中k1,k2,k3,k4是常数,我想用matlab求出x,y,z,f关于t的表达式。我用了dsolve()和ode45()都没弄出来,程序运行不是半天没出不来结果就是显示Warning: Function call Function invokes inexact match D:\MATLAB7\toolbox\matlab\lang\function.m.

??? Attempt to execute SCRIPT function as a function.
我不知道是为什么,请高手指点,谢谢!在线等。
展开
百度网友700dc72
2008-11-07 · TA获得超过456个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:158万
展开全部
该方程为非线性微分方程,不存在解析解,只能通过数值方法求解;
function x_dot=volt(t,x)
syms k1 k2 k3
x_dot=[1*x(1)*x(2)+2*x(1)*x(3);1*x(1)*x(2)+3*x(2)*x(4);1*x(1)*x(2)-2*x(3)*x(1)+3*x(2)*x(4);2*x(3)*x(1)-3*x(2)*x(4)];
之后在命令窗口中输入:
t_final=100;x0=[0,0,0,0]%初始值,这里k1换成了1,必须为数值
[t,x]=ode45('volt',[0,t_final],x0);
plot(t,x)
不过结果有点问题,只能帮到这兄弟,剩下的看你的了!
huxuec
2008-11-01 · TA获得超过2625个赞
知道小有建树答主
回答量:1095
采纳率:75%
帮助的人:585万
展开全部
警告:函数调用函数,调用不精确匹配D组: \ MATLAB7 \工具箱\ MATLAB的\浪\ function.m 。

? ? ?尝试执行脚本功能作为一个功能。
syms x0 y0
dsolve('Dx=k1*x*y+k2*x*z,Dy=k1*x*y+k3*y*f,Dz=k1*x*y-k2*z*x+k3*y*f,Df=k2*z*x-k3*y*f','x(0)=x0,y(0)=y0,z(0)=0,f(0)=0 ')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
2008-11-01 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2808万
展开全部
乘号前面加个点试试.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
roc_light
2008-11-06
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
又不是矩阵的数值运算,加什么点啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式