繁体   English   中英

使用Matlab解决符号不等式时出错

[英]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] ,而不是由变量xy 使用旧版本的Matlab时,请确保查看适用于您版本的在线文档,或在“命令窗口”中使用helpdoc (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

对于Sxv对于Sy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM