因此,我接到了一项家庭作业,要求求解三次样条的系数。现在我清楚地了解如何在纸上以及使用 MatLab 进行数学计算,我想用 Python 解决问题。给定一个方程 Ax = b,其中我知道 A 和 b 的值,我希望能够使用 Python 求解 x,但我很难找到好的资源来完成这样的事情。
Ex.
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 http://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.solve_banded.html
评论一下这个问题的一些评论:更好not use inv
用于求解线性系统。numpy.lstsq
有点不同,它对于拟合更有用。
由于这是家庭作业,因此您最好至少阅读一下解决三对角线性系统的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)