用python求解多元一次方程?

時間 2021-06-09 19:40:37

1樓:縱然不盡然

想要用隨機生成的陣列去窮盡所有可能還是不太現實,長度為n的數列,一共就有2^n種可能,我試了一下,如果是4個數,也就是16種情況,在1000次重複下,平均要隨機生成53次才能全部生成全部可能,最多的要156次。若果有10個數生成1024種的話,我的電腦已經跑不動了,5個數512種的話平均3447次,最多的4976次。所以用隨機的方式去生成所有情況是不現實的,肯定是窮舉法比較現實。

import numpy as np

#生成係數矩陣

def func(n):

xs =

i = 1

while ix_list =

for x in xs[i]:

i+=1

xs[i] = x_list

return xs[n]

#輸入任意數,給定k,輸出求和結果

def main(input_list,k):

x = np.array(input_list)n = len(input_list)

func_n = func(n)

func_T = np.array(func_n).Tresult = np.dot(x,func_T)for index,name in enumerate(result):

if name == k:

print(func_n[index])

start = time.time()

main([1,2,3,4,5,6,7,8,9,10],10)end = time.time()

print(end-start)

[0, 0, 0, 0, 0, 0, 0, 0, 0, 1][0, 0, 0, 1, 0, 1, 0, 0, 0, 0][0, 0, 1, 0, 0, 0, 1, 0, 0, 0][0, 1, 0, 0, 0, 0, 0, 1, 0, 0][0, 1, 1, 0, 1, 0, 0, 0, 0, 0][1, 0, 0, 0, 0, 0, 0, 0, 1, 0][1, 0, 0, 1, 1, 0, 0, 0, 0, 0][1, 0, 1, 0, 0, 1, 0, 0, 0, 0][1, 1, 0, 0, 0, 0, 1, 0, 0, 0][1, 1, 1, 1, 0, 0, 0, 0, 0, 0]0.002000331878662109410個數也是挺快的

20個數稍微慢點3.55秒

因為畢竟是窮盡,時間複雜度應該是O(n^2)個數越多時間越長。

可以優化一下,比如先剔除出不可能的解之類的。

python 怎麼擬合二元一次方程?

IT野狐禪 用梯度下降法擬合 損失函式用平方差。下面示例上損失函式用絕對值,效果沒平方差好 二元線性擬合 import tensorflow astf 定義模型 Y w X bX tf.placeholder tf float32,None,1 w tf Variable tf zeros 1 1 ...

六元一次方程整數解?

誰問我 試問方程1999a 1299b 1499c 2799d 2499e 3299f 2328450.在約束條件 a 0,607 b 0,534 c 0,60 d 0,660 e 0,100 f 0,209 下的整數解?include intmain int argc char argv else...

Python怎麼求解一元三次方程?

調包方法是使用符號化運算庫,常用庫有Theano SympyTheano不知道有沒有,Sympy可以用以下方式求解import sympy as sp x sp.Symbol x f x 3 2 x 2 1 sp.solve f 輸出 1,1 2 sqrt 5 2,sqrt 5 2 1 2 返回結果...