在 MATLAB 中求解复杂方程(变量方程)

solve complex equations in MATLAB (Variable Equations)

我有一些方程式,其中包含一些参数和变量。 每个变量定义并且也存在于其他方程式中。这些是我的方程式:

syms Pof s Pon teta landa PIon PIof PISC
Pof = (s * y - teta + T * teta - landa + Pi * landa + alpha * p + Pon * b1 + w * b2)/(2 * b2);
s = -(y * (w - Pof))/q;
Pon = (q * s * y + 2 * w * y - 2 * w * y^2 + 2 * q * alpha + 2 * q * Pi * landa - q * teta + 3 * q * T * teta - q * landa + q * Pi * landa - q * alpha * p - 2 * y * Pof + 2 * y^2 * Pof + C * q * b1 + q * w * b2)/(2 * q * b1);
teta = (C - 3 * C * T - Pon + 3 * T * Pon)/2 * q;
landa = (-1/2) * (-1 + Pi) * (C - Pon);
Don = (1-p) * alpha - b1 * Pon + b2 * Pof - (1-y) * s + T * teta + landa * Pi;
Dof = p * alpha - b1 * Pof + b2 * Pon + y * s - (1-T) * teta - landa * (1-Pi);
PIon = (Pon-C) * Don - (1/2) * n * teta^2 - (1/2) * q * landa^2;
PIof = (Pof-w) * Dof - (1/2) * L * s^2;
PISC = PIon + PIof;

我如何解决这些问题以获得每个变量的数字答案? (我不想要参数化答案)

所述等式为

可以排列成线性系统A x = b如下

你在 Matlab 中求解为 x = A \ b

进一步调查,似乎 A 是奇异的,因为它的大小是 10×8 并且不能反转。所以需要 least-squares 解决方案 where

x = inv(AT* A)* AT b