如何编写在多方程的matlab函数中使用pinv()?

时间:2015-08-11 11:46:03

标签: matlab

我有一些方程如下。

F(X)= 3×^ 3-4倍^ 2 + 3×-7

F(X)= 2×^ 3-3x ^ 2 + 2X-1

我想从AX = B获得X,X = pinv(A)B。

然后我在MATLAB中编写如下代码。

A = [3 -4 3 -7;      2 -3 2 -1];

但我不知道如何获得B?有谁知道如何获得B?

我应该做什么B?

1 个答案:

答案 0 :(得分:0)

pinv()用于求解线性方程组,例如以下形式的多个方程:ax + by + cz。

你似乎有几个立方方程,即形式为ax ^ 3 + bx ^ 2 + cx + d。假设你试图为f(x)= 0解决每个问题,我会使用roots()函数。例如,对于您的第一个等式:

f1 = [3 -4 3 -7]
f1_roots = roots(f1)

请参阅此处查看根文档:http://uk.mathworks.com/help/matlab/ref/roots.html

将两个方程式视为联立方程式并不合理,因为 x 没有一个值可以满足两个解。如果您希望找到 x 的值尽可能接近两个解,但(不满足任何一个等式),您可以考虑使用最小二乘,如bashfuloctopus https://math.stackexchange.com/questions/1392818/how-can-i-use-left-inverse-to-fx-3x-format-equation/1392843?noredirect=1#comment2835591_1392843所述