Matlab调用syms定义符号函数报错Not a valid variable name如何处理
Matlab微分方程组求解报错修复方案
核心错误原因
- 变量拼写笔误:定义方程组数组
eqns时,将已声明的方程变量eq1误写为egn1,Matlab无法识别该未定义变量,触发无效变量名报错 - 兼容性问题(次要):部分R2019b之前的低版本Matlab,直接声明
syms I1(t) I2(t)可能存在符号函数识别异常,也会触发同类报错
修复后完整代码
% 优先兼容全版本的符号变量声明写法 syms t syms I1(t) I2(t) eq1 = diff(I1(t),t) == 12-2*I1(t)+diff(I2(t),t); eq2 = diff(I2(t),t) == 1/3*(diff(I1(t),t)-4); % 修正拼写错误:将egn1改为eq1 eqns = [eq1; eq2]; cond1 = I1(0)==0; cond2 = I2(0)==0; conds = [cond1; cond2]; [I1Sol(t), I2Sol(t)] = dsolve(eqns, conds)
运行输出说明
执行上述代码后会直接返回两个解析解:
I1Sol(t)为 $I_1(t) = 9 - 9e^{-\frac{t}{2}}$I2Sol(t)为 $I_2(t) = \frac{3}{2}t + 3e^{-\frac{t}{2}} - 3$
内容的提问来源于stack exchange,提问作者Alana Ng
相关产品推荐
相关产品推荐

