解线性方程组近似解Python
时间: 2023-11-19 20:55:03 浏览: 146
解线性方程组的近似解可以使用高斯消元法来实现。下面是一个使用Python实现高斯消元法求解线性方程组的例子:
首先,我们需要导入numpy和sys模块:
```
import numpy as np
import sys
```
然后,我们可以定义一个函数来实现高斯消元法:
```
def SolveEq(A,b):
if A.shape[0]!=A.shape[1]:
print('系数矩阵不是方阵')
sys.exit(0)
n=A.shape[0]
#消元
for k in range(n-1):
if A[k,k]<1e-8:
print('主元素为零')
sys.exit(0)
for j in range(k+1,n):
m=A[j,k]/A[k,k]
A[j,k:n]= A[j,k:n]-m*A[k,k:n]
b[j]=b[j]-m*b[k]
#回代
b[n-1]=b[n-1]/A[n-1,n-1]
for i in range(n-2,-1,-1):
b[i]=(b[i]-np.dot(A[i,i+1:n],b[i+1:n]))/A[i,i]
return b
```
在这个函数中,我们首先检查系数矩阵是否是方阵,然后进行高斯消元法的消元和回代过程,最后返回解向量。
接下来,我们可以使用这个函数来解决一个线性方程组的例子:
```
A=np.array([[1,1,1],[0,4,-1],[2,-2,1]])
b=np.array([[6],[5],[1]])
x= SolveEq(A,b)
print(x)
```
这个例子中,我们定义了一个系数矩阵A和一个常数向量b,然后使用高斯消元法求解线性方程组Ax=b的解向量x,并打印出来。
阅读全文