所以我得到了一个家庭作业,要求求解三次样条的系数。现在我清楚地了解如何在纸上以及使用 MatLab 进行数学运算,我想用 Python 解决这个问题。给定一个方程 Ax = b,其中我知道 A 和 b 的值,我希望能够用 Python 求解 x,但我很难找到一个好的资源来做这样的事情。

前任。

A = |1 0 0|
    |1 4 1|
    |0 0 1|

x = Unknown 3x1 matrix

b = |0 |
    |24|
    |0 |

求解 x

最佳答案

在一般情况下,使用 solve :

>>> import numpy as np
>>> from scipy.linalg import solve
>>>
>>> A = np.random.random((3, 3))
>>> b = np.random.random(3)
>>>
>>> x = solve(A, b)
>>> x
array([ 0.98323512,  0.0205734 ,  0.06424613])
>>>
>>> np.dot(A, x) - b
array([ 0.,  0.,  0.])
如果您的问题是带状的(通常是三次样条),则有 http://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.solve_banded.html
评论一些对问题的评论:最好不要使用 inv 来求解线性系统。 numpy.lstsq 有点不同,更适合拟合。
由于这是家庭作业,因此您最好至少阅读解决三对角线性系统的方法。

关于python - 矩阵乘法,求解 Ax = b 求解 x,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22163113/

10-12 20:46