矩阵乘法,求解Ax = b求解x

Sca*_*olo 12 python numpy matrix-multiplication

所以给了我一个需要求解三次样条系数的作业.现在我清楚地了解如何在纸上和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 |
Run Code Online (Sandbox Code Playgroud)

解决x

ev-*_*-br 12

在一般情况下,使用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.])
Run Code Online (Sandbox Code Playgroud)

如果您的问题被绑定(通常是三维样条),那么就有http://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.solve_banded.html

对一些评论的问题的意见:更好地使用inv求解线性系统.numpy.lstsq有点不同,它对于拟合更有用.

由于这是家庭作业,你至少可以阅读解决三对角线性系统的方法.


Bus*_*ero 5

Numpy 是 Python 中用于科学计算的主要包。如果您是 Windows 用户,请在此处下载:http : //www.lfd.uci.edu/~gohlke/pythonlibs/#numpy否则请按照以下说明进行操作:http : //www.scipy.org/install.html

import numpy
A = [[1,0,0],[1,4,1],[0,0,1]]
b = [0,24,0]
x = numpy.linalg.lstsq(A,b)
Run Code Online (Sandbox Code Playgroud)