導航:首頁 > 編程語言 > python求解方程組

python求解方程組

發布時間:2022-09-12 03:16:42

⑴ 如何用python化簡方程組

用牛頓迭代法 + 多項式除法化簡。

1)針對方程組 f(x),首先用牛頓迭代法得到方程的第一個根(a),那麼 f(x) = (x-a)g(x)
2)用多項式除法,計算 g(x) = f(x)/(x-a)
重復第一步,得到 g(x) 的根,然後再重復第二步,進一步對方程降冪。
最終就可以化簡整個方程。

⑵ python怎麼實現方程組的解隨參數變化

不是很明確你需要做到什麼程度,但基本可以通過以下兩個手段得到:

  1. 手工解方程得到解析解,然後套入公式

  2. 使用一些工具包例如numpy可以自動求解

以下都給出例子

importnumpyasnp
importmatplotlib.pyplotasplt

plt.axis("equal")

a=np.linspace(1,10,100)#a的變化范圍可以自己挑,前兩個參數控制,

#使用numpy自動求解
res=[]
forxina:
A=np.mat("1,2;{},-1".format(x))
b=np.mat("{},10".format(x)).T
res.append(np.linalg.solve(A,b))

#計算完畢後取出每對x和y
x1=[float(r[0])forrinres]
y1=[float(r[1])forrinres]

plt.plot(x1,y1)

#####################################

#手工計算過程很簡單不放上來了,直接上結果

x2=[(a1+20)/(2*a1+1)fora1ina]
y2=[(a1**2-10)/(2*a1+1)fora1ina]

plt.plot(x2,y2)

⑶ 用python如何得到一個方程的多個解

方法/步驟

⑷ 用python如何求解非齊次線性方程組的一組正值特解,

其實更簡單的「取值」方法是 令 x3 = x4 = 0,得特解 (1, 1, 0, 0)^T.
4 個未知數,2 個方程,任意給出 2 個未知數的值,
算出另 2 個未知數,都可以得到 1 組特解,
只不過形式越簡單越好,例如取 特解 (1, 1, 0, 0)^T。

⑸ 求指教:Python怎樣分別輸出方程組的解

題主的問題沒有毛病:solve([f],[x]),f是方程,x是變數,這個代碼解的是關於x的方程f=0
其實很明顯了,輸出的是字典,也可以用type()確定變數類型,代碼如下:
L
=
solve([2*x+3*y-8,3*x-y-1],[x,y])
print(L[x])
print(L[y])
要運算的話就是:
a
=
L[x]
b
=
L[y]
print(a+b)

⑹ python怎麼求解一元二次方程的根

import numpy as np

def solve_quad(a,b,c):

if a == 0:

print('您輸入的不是二次方程!')

else:

delta = b*b-4*a*c

x = -b/(2*a)

if delta == 0:

print('方程有惟一解,X=%f'%(x))

return x

elif delta > 0:

x1 = x-np.sqrt(delta)/(2*a)

x2 = x+np.sqrt(delta)/(2*a)

print('方程有兩個實根:X1=%f,X2=%f'%(x1,x2))

return x1,x2

else:

x1 = (-b+complex(0,1)*np.sqrt((-1)*delta))/(2*a)

x2 = (-b-complex(0,1)*np.sqrt((-1)*delta))/(2*a)

print(x1,x2)

return x1,x2

Python

是完全面向對象的語言。函數、模塊、數字、字元串都是對象。並且完全支持繼承、重載、派生、多繼承,有益於增強源代碼的復用性。Python支持重載運算符和動態類型。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標准庫(functools, itertools)提供了Haskell和Standard ML中久經考驗的函數式程序設計工具。

⑺ 如何用python編程求解二元一次方程組。如x+y=3;x-y=1

利用 numpy 很簡單。可以利用pip安裝

pipinstallnumpy

然後(以你的方程為例),python 下

Python2.7.10(default,Oct232015,19:19:21)
[GCC4.2.1CompatibleAppleLLVM7.0.0(clang-700.0.59.5)]ondarwin
Type"help","right","credits"or"license"formoreinformation.
>>>importnumpyasnp
>>>a=np.array([[1,1],[1,-1]])
>>>b=np.array([3,1])
>>>printnp.linalg.solve(a,b)
[2.1.]

如果你學過 線性代數,那麼這段代碼很好理解。

⑻ python解決jacob迭代法求解線性方程組

題主好. 經典的 Jacobi 迭代演算法如下:

設 A = D - E, 則 x = D^{-1}*b + D^{-1}*E*x = C + T*x

可以參考如下代碼(復制代碼後請注意縮進):

import numpy as np

def linalg_solve_jacobi(A, b, x0, max_it, tol=1.0e-7):

# 判斷 A, b 的維數是否正確

if A.shape[0]!=A.shape[1] or A.shape[0]!= b.shape[0]:

raise Exception('A must be square or A and b must be compatible!')

D = np.diag(A)

# 判斷對角元素是否含零

if np.amin(np.absolute(D)) < 1e-14:

raise Exception('Diagonal elements of A must not be zeros!')

# 設置初始迭代步數為0

n = 0

#

# Jacobi 演算法:

# 設 A = D - E, 則 x = D^{-1}*b + D^{-1}*E*x = C + T*x

#

invD = np.diag(1.0/D) # invD is inv(D)

C = np.dot(invD,b) # C is inv(D)*b

T = np.dot(invD, np.diag(D)-A) # T is inv(D)*E

while n < max_it:

x = C + np.dot(T, x0)

if np.linalg.norm(x-x0)<tol:

break

x0[:] = x

n+=1

# 如果超過最大迭代步數, 迭代失敗

if n>max_it:

raise Exception('Failed to converge within {} steps!'.format(max_it))

# 成功, 返回

return x, n



if __name__ == "__main__":

A = np.array([[10, -1, 2, 0],[-1, 11, -1, 3],

[2, -1, 10, -1], [0, 3, -1, 8]], dtype=np.float64)

b = np.array([6, 25, -11, 15], dtype=np.float64)

x0 = np.array([0,0,0,0], dtype=np.float64)

max_it = 100

tol = 1.0e-7

x,n=linalg_solve_jacobi(A, b, x0, max_it, tol)

print(x,n)

閱讀全文

與python求解方程組相關的資料

熱點內容
編譯動態庫時會連接依賴庫嗎 瀏覽:706
淘寶手機加密是隨機的嗎 瀏覽:672
解壓包子怎麼裝飾 瀏覽:585
四個數湊24演算法 瀏覽:676
哪一種不是vi編譯器的模式 瀏覽:168
xp在此處打開命令窗口 瀏覽:128
代碼編譯運行用什麼軟體 瀏覽:997
動態庫在程序編譯時會被連接到 瀏覽:760
python超簡單編程 瀏覽:259
獲取命令方 瀏覽:976
怎樣製作文件夾和圖片 瀏覽:59
調研編譯寫信息 瀏覽:861
python馮諾依曼 瀏覽:419
同時安裝多個app有什麼影響 瀏覽:254
奧術殺戮命令宏 瀏覽:184
用sdes加密明文字母e 瀏覽:361
單片機原理及應用試題 瀏覽:425
易語言開啟指定文件夾 瀏覽:40
馬思純參加密室大逃脫 瀏覽:322
文件夾冬季澆築溫度 瀏覽:712