Matlab逆(非线性)系统变换

时间:2016-04-02 13:42:38

标签: matlab

我的系统看起来像这样:

z1 = 5*x1 + x2*cos(x3)
z2 = x1*sin(x3) + 3*x2
z3 = 3*x1 - 2*x2

这是微分方程组的转换(只是为了给出一些背景,我不认为你真的需要知道这一点)。现在我想找到这种转变的反转,它看起来像是:

x1 = ...(stuff with z1, z2, z3)...
x2 = ...
x3 = ...

现在我想用这个系统手动找到它是相对容易的,但是我必须用7变量7方程式系统做同样的事情,这样做会非常繁琐。
我找不到让Matlab这样做的方法,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

也许这可行:

你可以通过泰勒扩展三角函数然后进行高斯消元来得到近似解。

如果问题可以放在表格上(使用随机数),可以使用Matlab中的rref进行高斯消元:

x + 3y + 4z = 5

2x + y + 6z = 4

8x + 2y + 7z = 3

然后Ax = b,A = [1 3 4; 2 1 6; 8 2 7],b = [5; 4; 3]

找x做:E = [A b] X = RREF(E)

编辑:对不起,我现在看到你没有z1,z2的数字..所以这对你的案子来说不是真正的解决方案。