作业帮 > 综合 > 作业

如何用matlab求解非线性微分方程组

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 05:38:51
如何用matlab求解非线性微分方程组
如何用matlab求解dx/dt=0.11*s*x/(0.006*x+s),ds/dt=-0.029*x-0.234*s/(0.006*x+s)-s/(30*s^2+300*s+0.03),
使用符号运算工具.
首先定义变量符号
syms s x t;
使用字符串定义公式
eq1 = 'diff(x,t) = 0.11*s*x/(0.06*x+s)';
eq2 = 'diff(s,t) = (-1)*0.029*x-0.234*s/(0.006*x+s)-s/(30*s^2+300*s+0.03)';
接下来是求解 比如现在要求解s,下面的代码可以给出s的表达式
solution = solve(eq1,eq2,s);
接下来求值
首先给变量赋值
x = 1;
t = 1;
之后运行
result = eval(solution);
可以求出解.
我现在写出的代码可能有错误,不过思路是这样的.我没调试.详细情况可以搜索 matlab 符号运算.