計算方法 線性方程組的數值解法

2021-10-04 16:18:00 字數 3401 閱讀 4808

1.簡介

nⅹn矩陣a=[aij]中的元素滿足對所有i>j,有aij =0,則稱矩陣a為上三角矩陣。如果a中的元素滿足,對所有i2.方法

①由最後乙個方程可求得:xn=bn/ann

②將xn代入倒數第二個方程可求得:xn-1=(bn-1-annxn)/an-1n-1

③所以回帶公式為:xk=(bk-((akk+1xk+1)+(akk+2xk+2)+…(aknxn)))/akk

3.題目(用numpy)

【問題描述】在乙個上三角線性方程組基礎上,進行線性方程組求解。

【輸入形式】在螢幕上依次輸入方陣階數n,係數矩陣a和常數矩陣b。

【輸出形式】每一行輸出乙個根

【樣例1輸入】

4 -1 2 3

0 -2 7 -4

0 0 6 5

0 0 0 3

-7【樣例1輸出】

[[ 3.]

[-4.]

[-1.]

[ 2.]]

【樣例1說明】輸入:第1行為方陣階數4,第2行至5行為係數矩陣a,第6行至9行為常數矩陣b。輸出:每行依次輸出方程解:x1, x2, x3, x4。

【評分標準】根據輸入得到的輸出準確

import numpy as np

n=input()

n=int

(n)a=np.zeros(

(n,n)

)b=np.zeros(

(n,1))

x=np.zeros(

(n,1))

for i in

range(0

,n):

enter=

input()

enter=enter.split(

" ")

a[i]

=enter

for i in

range(0

,n):

enter=

input()

b[i][0

]=enter

i=n-

2x[n-1]

=b[n-1]

/a[n-1]

[n-1

]while

(i!=-1

):x[i]

=(b[i]

-np.matmul(a[i,i+

1:n]

,x[i+

1:n]))

/a[i,i]

i=i-

1print

(x)

1.簡介

求解有n個方程和n個未知數的一般方程組ax=b,如果可以構造乙個等價的上三角方程組ux=y,這樣可以利用回代法進行求解。

2.主元

用係數矩陣a中的元素arr用來消去ark,其中k=r+1, r+2, …, n,這裡稱arr為第r個主元,第r行稱為主元行。

6.題目

【問題描述】為求解乙個線性方程組,首先構造增廣矩陣[a|b],採用偏序選主元策略的高斯消去法變換成上三角矩陣,再執行回代過程得到解。

【輸入形式】在螢幕上依次輸入方陣階數n,係數矩陣a和常數矩陣b。

【輸出形式】首先輸出上三角矩陣(變換後的增廣矩陣),然後每一行輸出乙個根

【樣例1輸入】

1 2 1 4

2 0 4 3

4 2 2 1

-3 1 3 2

【樣例1輸出】

[[ 4. 2. 2. 1. 20. ]

[ 0. 2.5 4.5 2.75 21. ]

[ 0. 0. 4.8 3.6 26.4 ]

[ 0. 0. 0. 3.75 7.5 ]]

[[ 3.]

[-1.]

[ 4.]

[ 2.]]

【樣例1說明】輸入:第1行為方陣階數4,第2行至5行為係數矩陣a,第6行至9行為常數矩陣b。

輸出:首先輸出上三角矩陣(變換後的增廣矩陣),然後每行依次輸出方程解:x1, x2, x3, x4。

【評分標準】根據輸入得到的輸出準確

import numpy as np

import math

n=input()

n=int

(n)a=np.zeros(

(n,n)

)a0=np.zeros((1

,n+1))

b=np.zeros(

(n,1))

x=np.zeros(

(n,1))

for i in

range(0

,n):

enter=

input()

enter=enter.split(

" ")

a[i]

=enter

for i in

range(0

,n):

enter=

input()

b[i][0

]=enter

a=np.concatenate(

(a,b)

,axis=1)

#增廣矩陣

for i in

range(0

,n):

#偏序選主元轉換為上三角矩陣

max=

abs(a[i]

[i])

maxc=i

for j in

range

(i+1

,n):if(

max<=

abs(a[j]

[i])):

max=

abs(a[j]

[i])

maxc=j

a0[0]

=a[maxc]

a[maxc]

=a[i]

a[i]

= a0[0]

for j in

range

(i +

1, n)

: a[j]

[i+1

:n+1

]=a[j]

[i+1

:n+1

]-a[j]

[i]/a[i]

[i]*a[i]

[i+1

:n+1

] a[j][0

:i+1]=

0x[n-1]

=a[n-1]

[n]/a[n-1]

[n-1

]while

(i!=-1

):#上三角矩陣的迭代方法

x[i]

=(a[i]

[n]-np.matmul(a[i,i+

1:n]

,x[i+

1:n]))

/a[i,i]

i=i-

1print

(a)print

(x)#根的值

線性方程組的數值解法

1.向量與矩陣的範數 norms of vectors and matrices 為了研究線性方程組數值解法的誤差估計和迭代法的收斂 性,有必要引進向量範數和矩陣範數的概念。歐式範數 設?1,2,1,2,稱 累加1 n 的?為向量?與?的內積,稱非負實數 2 根號 累加1 n的 2的1 2次方為向量...

數值計算解線性方程組

高斯消元法 function x solvegauss a,b n size a,1 x zeros n,1 for j 1 n 1 for i j 1 n mul a i,j a j,j a i,a i,mul a j,b i b i mul b j endendfor i n 1 1 sum 0...

數值計算 線性方程組求解(0)

本專題將講述以多種方式求解線性方程組,也作為本人在 數值計算與優化 課程中學到知識的總結與具體 實現。主要用到資料為 數值計算方法 第3版 解線性代數組是科學研究與工程計算中經常遇到的問題。此專題討論以下n階線性方程組 a 11x1 a12x2 a 1nxn b1a 21x1 a22x2 a 2nx...