1

我正在使用 Matlab R2014a。

我需要找到一组不等式的答案,然后在脚本中使用它。我使用过solve([eq1,eq2],x),但答案是 MuPad 语法,因此我无法将其更改为双精度或浮点数以用于其他计算。是否有解决不等式系统的替代方法,或从 Dom::Interval(x1,x2) 中提取信息的方法?

syms x
eq1= x>0 ;
eq2= x<3 ;
solve([eq1,eq2],x)

输出是:

"Dom::Interval(0, 3)"

并且无法用于脚本。

我该如何解决这个问题?

4

1 回答 1

0

如果您的目标是求解方程组,同时将变量限制在给定的范围内,那么您最好使用assume为每个变量设置假设。例如:

>> syms x;
>> eq1 = x>0;  % Lower constraint
>> eq2 = x<3;  % Upper constraint
>> solve(sqrt(x^2-4)==0, x)  % An equation with 2 solutions

ans =

  2
 -2

>> assume(eq1 & eq2)  % Constrain x
>> solve(sqrt(x^2-4)==0, x)

ans =

2  % Only the solution that satisfies the constraints is returned
于 2019-08-01T18:17:49.327 回答