[英]Error in solving symbolic inequalities using Matlab
我是Matlab的新手。 我正在尝试使用solve
:
syms x y
S = solve(x^2 + y^2 + x*y < 1, x > 0, y > 0, [x, y]);
solx = S.x
soly = S.y
但是Matlab返回:
警告:2个变量中的5个方程式。
在C:\\ Program中
Files \\ MATLAB \\ R2012a \\ toolbox \\ symbolic \\ symbolic \\ symengine.p> symengine at 54在mupadengine.mupadengine> mupadengine.evalin中,位于97
在mupadengine.mupadengine> mupadengine.feval中,位于150
在160解
警告:找不到明确的解决方案。 >在169中解决
逗号分隔的列表扩展具有非单元格数组的单元格语法。
sym / subsref中的错误(第1575行)
[inds {k},refs {k}] = privformat(inds {k});
谁能告诉我如何解决此错误?
如果可能的话,第一件事就是使用更新版本的Matlab。 近年来,“符号数学”工具箱已进行了大量更新。
我正在使用R2015a,所以无法完全测试您的情况。 不过,您可以尝试以下几种方法。 首先,使用assumptions
(链接到R2012a存档文档)。 其次,我认为您的错误是由求解向量[xy]
,而不是由变量x
和y
。 使用旧版本的Matlab时,请确保查看适用于您版本的在线文档,或在“命令窗口”中使用help
和doc
(Google只会显示当前版本的信息): R2012a中用于solve
的存档文档 。
以下是应用于您的示例的那些更改:
syms x y;
assume(x > 0);
assume(y > 0);
S = solve(x^2 + y^2 + x*y < 1, x, y)
这仍然会返回警告:
警告:解决方案通过以下符号进行参数化:u,v。要在解决方案中包括参数和条件,请指定“ ReturnConditions”选项。
> 解决中> warnIfParams (第510行)
正在解决 (第360行)
警告:解决方案在以下条件下有效:4 * v ^ 2 <u&u <4&0 <v。要在解决方案中包括参数和条件,请指定“ ReturnConditions”选项。
>在求解中> warnIfParams (第517行)
正在解决 (第360行)
S =
x: [1x1 sym]
y: [1x1 sym]
而且产量
(- 3*v^2 + u)^(1/2)/2 - v/2
对于Sx
和v
对于Sy
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.