Matlab,扩展,控制系统的联立方程求解

时间:2014-09-10 03:25:40

标签: matlab

我在matlab中有这段代码

syms L1 L0 P1 P0 s
L = expand(s*(s^2+L1*s+L0)*(s-75)+1400*(P1*s+P0))
R = expand((s+75)*(s+150)^3)

我想解决P1P0L1L0

L = R

1400*P0 - 75*L0*s + 1400*P1*s + L0*s^2 - 75*L1*s^2 + L1*s^3 - 75*s^3 + s^4 = s^4 + 525*s^3 + 101250*s^2 + 8437500*s + 253125000

通过观察:

1400*P0 = 253125000

... ETC

如何在Matlab中从L=R中提取联立方程并自动求解每个变量?

由于

1 个答案:

答案 0 :(得分:0)

您可以将等式写为L-R=0,然后执行C=coeffs(L-R,s)之类的操作。然后,类似下面的代码可能会解决方程:

for i=1:length(C)
    sol(i)=solve(C(i));
end

但可能很难弄清楚sol的哪个元素指的是哪个变量。但是,如果你要在代码运行时查看输出,那么我应该很清楚。