无法找到显式解

32ビュ(過去30日間)
Mohit雷
Mohit雷 2021 年 10 月 11 日
回答済み: 沃尔特·罗伯森 2021 年 10 月 11 日
信谊x1 x2 a b c d n u1 u2 c1 c2 l1 l2 M1 M2 b P1 P2
eqn1 x2 = P1 * * u1 * (1-l2) + (1 x2) * a * u1-2 * * (1 x2) ^ 2 * x1 * n * (M1 u1 ^ ^ 2 + 2) - c * u2 + 2 * d * n * (1 x1) * (M2 ^ 2 + u2 ^ 2)往上平移+ c2 + l1 < = 0;
eqn2 = x1 * (P1 * x2 * u1 * (1-l2) + (1 x2) * * u1-2 * b * (1 x2) ^ 2 * x1 * n * (M1 u1 ^ ^ 2 + 2) - c * u2 + 2 * d * n * (1 x1) * (M2 ^ 2 + u2 ^ 2)往上平移+ c2 + l1) = = 0;
eqn3 x1 = P1 * * u1-x2 * a * u1 + 2 * * (1 x2) * x1 ^ 2 * n * (M1 u1 ^ ^ 2 + 2) l2 * P1 * x1 * u1 < = 0;
eqn4 = x2 * (P1 * x1 * u1-x2 * a * u1 + 2 * * (1 x2) * x1 ^ 2 * n * (M1 u1 ^ ^ 2 + 2) l2 * P1 * x1 * u1) = = 0;
eqn5 = x1 + 1 + (P2-c) * u2 / (d * n * (M2 ^ 2 + u2 ^ 2)) < = 0;
eqn6 = l1 * (x1 + 1 + (P2-c) * u2 / (d * n * (M2 ^ 2 + u2 ^ 2))) = = 0;
eqn7 x2 = P1 * * x1 * u1-B / n < = 0;
x1 eqn8 = l2 * (P1 * x2 * * u1-B / n);
l1 eqn9 = > = 0;
l2 eqn10 = > = 0;
eqn11 x1 = > = 0;
eqn12 = x2 > = 0;
eqn13 x1 = < = 1;
eqn14 x2 = < = 1;
命令= [eqn1 eqn2、eqn3 eqn4, eqn5, eqn6, eqn7, eqn8, eqn9, eqn10, eqn11, eqn12, eqn13, eqn14);
answer = solve(eqns,[x1,x2,l1,l2],“ReturnConditions”,真正的);
警告:无法找到显式解。对的选择,请参阅的帮助。
在solve中(第317行)
answ =
结构体字段:
x1: [0×1信谊]
x2: [0×1信谊]
l1 (0:×1信谊]
l2 (0:×1信谊]
参数:[1×0 sym]
2件のコメント
沃尔特·罗伯森
沃尔特·罗伯森 2021 年 10 月 11 日
x1 eqn8 = l2 * (P1 * x2 * * u1-B / n);
这是隐含的== 0吗?对于其他方程,您指定了== 0,但对于这个方程没有

サ邮箱ン邮箱ンしてコメントする。

回答 (2 件)

约翰D 'Errico
约翰D 'Errico 2021 年 10 月 11 日
編集済み:约翰D 'Errico 2021 年 10 月 11 日
为什么你认为存在解决方案?如果任意解存在,那么如果任意解存在,那么几乎肯定会有无穷多个解。万博 尤文图斯这个集合很可能是一个奇怪的曲线集合。它不需要是连续的集合。
看起来你需要解出其中的4个变量,用其他完全未知的变量作为参数。当然,因为您不知道这些其他参数的值,所以解将是一些令人难以置信的混乱。虽然概率是,根本不存在解析解,因为这个方程组最终等价于某个高阶多项式的概率是很大的,次数大于4。如果是这样的话,我们就可以证明不存在代数解。
当然,解,它们中的无穷多个,都在四维空间中某个奇怪的表面上。说实话,任何四维空间的表面对于大脑中甚至缺乏四维超级显示器的三维生物来说都可能看起来很奇怪。
那么MATLAB究竟应该如何提供这样的解决方案呢?事实上,MATLAB给了你它的意见——它找不到解决这个问题的方法。
充其量,你可能会找到一些随机分散的解,这将意味着没有任何价值,也不会提供给你真正的信息。万博 尤文图斯您需要为所有其他未知参数提供数值。然后你可以尝试使用求解器,如vpasolve或fsolve,试图找到一个数值解。这实际上是无用的。
仅仅因为你可以写出一组非线性方程并不意味着你可以用它们做任何有意义的事情。
作为一个数学家,我该如何解决这个问题呢?
首先,也是最重要的,我要去掉所有那些任意的参数。我会把问题非量纲化。如果你曾经上过物理或工程课程,你会认识到这个想法。一旦你现在把问题简化为几个比率或参数的乘积,现在问题可能更简单了,至少在理论上是这样。s manbetx 845
然后看看你拥有什么。可能仍然没有解决方案,但是您现在可以选择这些无量纲参数的一些有效集合,并看看它们是否代表一些真实世界的现象。你能解决那个问题吗?如果没有,那就试着进一步减少问题。在某种程度上,您将把问题简化为您想要解决的现实世界问题的一个简单近似,以现在有解决方案的形式出现。这只是一个近似解,但你需要从那里开始。这就像一个工程师假设平面应力或平面应变适用于一些他们无法解决的更复杂的问题。

沃尔特·罗伯森
沃尔特·罗伯森 2021 年 10 月 11 日
一般来说,MATLAB在不等式方面比较弱。
  • 对于很多不等式,它很容易放弃
  • 大多数次大于3的多项式不等式都被放弃了。不所有,但大部分
  • 未被放弃的3次或更高的多项式,将隐藏ReturnConditions中所有有用的信息,并且很难从ReturnConditions中挖掘出任何有用的信息
  • 内部求解器能够找到值的范围,例如确定一个特定的值必须在-√(3/7)到+√(29/5)的范围内。然而,任何时候返回这样一个范围,并且该范围可以解析为完全的数值,那么内部求解器的MATLAB接口将用从范围中选择的标称值替换范围构造。我在过去已经发布了它选择什么值。例如,在本例中,它可能选择返回圆周率作为标称值,因为圆周率在这个范围内。它不告诉用户值的范围,甚至不告诉用户值的范围range:返回A满足条件的值
正因为如此,你最好把方程写成一系列的等式。A + B < C意味着A + B + delta == C,其中delta严格为正——因此,您可以写入自己的变量来平衡等式,并假设()它们为>0或>=0,这取决于您想要<还是<=。
最后一系列方程可以用assume()语句替换。

製品


リリス

R2019b

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!

翻译的