首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用solve()出错:单字符变量名工作,但较长的名称会导致错误

使用solve()出错:单字符变量名工作,但较长的名称会导致错误
EN

Stack Overflow用户
提问于 2015-12-10 13:30:11
回答 1查看 257关注 0票数 1

有谁知道为什么这个代码:

代码语言:javascript
复制
syms pi41 r C2 sigma mu C3 theta
pi41 = solve('(-2*pi41-2*r*C2+3*(sigma^2-2*mu)/sigma*C3)*theta^2','pi41')

有这样的错误:

代码语言:javascript
复制
Error using mupadengine/feval (line 163)
Invalid argument.

Error in solve (line 294)

sol = eng.feval('solve', eqns, vars, solveOptions);

但是对于像下面这样的简单字符:

代码语言:javascript
复制
syms a b c d e f x
x = solve('(-2*x-2*a*b+3*(d^2-2*e)/d*c)*f^2','x')

没有吗?

我会感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 15:51:10

建立两个向量,一个带方程,另一个带有未知数。

代码语言:javascript
复制
syms foo bar
eq = [  foo + bar == 5; 
      2*foo - bar == 4];
unknowns = [foo, bar];

然后用解题

代码语言:javascript
复制
sol = solve(eq, unknowns)

或者在你的情况下

代码语言:javascript
复制
syms pi41 r C2 sigma mu C3 theta
eq = (-2*pi41-2*r*C2+3*(sigma^2-2*mu)/sigma*C3)*theta^2 == 0;
unknowns = [pi41];
sol = solve(eq, unknowns);

结果:

代码语言:javascript
复制
sol =
- C2*r - (C3*(- 3*sigma^2 + 6*mu))/(2*sigma)

您还可以指定/确保西格玛为非零.

...in Matlab 2015b

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34203196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档