我正在使用带有求解功能的Matlab Symbolic Toolbox并尝试求解 4 个方程的非线性系统,
有 4 个变量:
x1 y1 x2 y2
和 4 个参数
delta1 delta2 alpha beta
下图描述了这些方程:
这是 Matlab 代码:
syms x1 x2 y1 y2 alpha beta delta1 delta2
[x1,y1,x2,y2] = solve('delta1 * x1^alpha * y1^(1 - alpha) = (1 - x2)^alpha * (1 - y2)^(1-alpha)',...
'delta2 * x2^alpha * y2^(1 - alpha) = (1 - x1)^beta* (1 - y1)^(1-beta)',...
'alpha / (1-alpha) * (1 - y2) / (1 - x2) = beta / (1 - beta) * y2/x2',...
'alpha / (1-alpha) * y1 / x1 = beta / (1 - beta) * (1 - y1) / (1 - x1)','x1','y1','x2','y2')
Matlab 返回:
警告:找不到明确的解决方案。
> 在 81 处解决
但是,如果我尝试将两者都alpha
替换beta
为0.5
.
[x1,y1,x2,y2] = solve('delta1 * x1^0.5 * y1^ 0.5 = (1 - x2)^0.5* (1 - y2)^0.5',...
'delta2 * x2^0.5 * y2^0.5 = (1 - x1)^0.5* (1 - y1)^0.5',...
'(1 - y2) / (1 - x2) = y2/x2',...
'y1 / x1 = (1 - y1) / (1 - x1)','x1','y1','x2','y2')
然后Matlab会给出结果。
所以我想知道:
方程真的无解吗?
如果可以解决,我是否以错误的方式使用 Matlab Symbolic Toolbox?Matlab其实可以解决的。
如果Matlab没有足够的能力来解决它,还有其他工具可以解决非线性方程组吗?