亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python基于高斯消元法計(jì)算線性方程組示例

 更新時(shí)間:2018年01月17日 11:03:59   作者:Furious7  
這篇文章主要介紹了Python基于高斯消元法計(jì)算線性方程組,結(jié)合實(shí)例形式分析了Python高斯消元法針對(duì)方程組求解的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python基于高斯消元法計(jì)算線性方程組。分享給大家供大家參考,具體如下:

#!/usr/bin/env python
# coding=utf-8
# 以上的信息隨自己的需要改動(dòng)吧
def print_matrix( info, m ): # 輸出矩陣
  i = 0; j = 0; l = len(m)
  print info
  for i in range( 0, len( m ) ):
    for j in range( 0, len( m[i] ) ):
      if( j == l ):
        print ' |',
      print '%6.4f' % m[i][j],
    print
  print
def swap( a, b ):
  t = a; a = b; b = t
def solve( ma, b, n ):
  global m; m = ma # 這里主要是方便最后矩陣的顯示
  global s;
  i = 0; j = 0; row_pos = 0; col_pos = 0; ik = 0; jk = 0
  mik = 0.0; temp = 0.0
  n = len( m )
  # row_pos 變量標(biāo)記行循環(huán), col_pos 變量標(biāo)記列循環(huán)
  print_matrix( "一開(kāi)始 de 矩陣", m )
  while( ( row_pos < n ) and( col_pos < n ) ):
    print "位置:row_pos = %d, col_pos = %d" % (row_pos, col_pos)
    # 選主元
    mik = - 1
    for i in range( row_pos, n ):
      if( abs( m[i][col_pos] ) > mik ):
        mik = abs( m[i][col_pos] )
        ik = i
    if( mik == 0.0 ):
      col_pos = col_pos + 1
      continue
    print_matrix( "選主元", m )
    # 交換兩行
    if( ik != row_pos ):
      for j in range( col_pos, n ):
        swap( m[row_pos][j], m[ik][j] )
        swap( m[row_pos][n], m[ik][n] );   # 區(qū)域之外?
    print_matrix( "交換兩行", m )
    try:
      # 消元
      m[row_pos][n] /= m[row_pos][col_pos]
    except ZeroDivisionError:
      # 除零異常 一般在無(wú)解或無(wú)窮多解的情況下出現(xiàn)……
      return 0;
    j = n - 1
    while( j >= col_pos ):
      m[row_pos][j] /= m[row_pos][col_pos]
      j = j - 1
    for i in range( 0, n ):
      if( i == row_pos ):
        continue
      m[i][n] -= m[row_pos][n] * m[i][col_pos]
      j = n - 1
      while( j >= col_pos ):
        m[i][j] -= m[row_pos][j] * m[i][col_pos]
        j = j - 1
    print_matrix( "消元", m )
    row_pos = row_pos + 1; col_pos = col_pos + 1
  for i in range( row_pos, n ):
    if( abs( m[i][n] ) == 0.0 ):
      return 0
  return 1
if __name__ == '__main__':
  matrix = [[2.0,  0.0, - 2.0,  0.0],
       [0.0,  2.0, - 1.0,  0.0],
       [0.0,  1.0,  0.0, 10.0]]
  i = 0; j = 0; n = 0
  # 輸出方程組
  print_matrix( "一開(kāi)始的矩陣", matrix )
  # 求解方程組, 并輸出方程組的可解信息
  ret = solve( matrix, 0, 0 )
  if( ret!= 0 ):
    print "方程組有解\n"
  else:
    print "方 程組無(wú)唯一解或無(wú)解\n"
  # 輸出方程組及其解
  print_matrix( "方程組及其解", matrix )
  for i in range( 0, len( m ) ):
    print "x[%d] = %6.4f" % (i, m[i][len( m )])

運(yùn)行結(jié)果:

一開(kāi)始的矩陣
2.0000 0.0000 -2.0000 | 0.0000
0.0000 2.0000 -1.0000 | 0.0000
0.0000 1.0000 0.0000 | 10.0000

一開(kāi)始 de 矩陣
2.0000 0.0000 -2.0000 | 0.0000
0.0000 2.0000 -1.0000 | 0.0000
0.0000 1.0000 0.0000 | 10.0000

位置:row_pos = 0, col_pos = 0
選主元
2.0000 0.0000 -2.0000 | 0.0000
0.0000 2.0000 -1.0000 | 0.0000
0.0000 1.0000 0.0000 | 10.0000

交換兩行
2.0000 0.0000 -2.0000 | 0.0000
0.0000 2.0000 -1.0000 | 0.0000
0.0000 1.0000 0.0000 | 10.0000

消元
1.0000 0.0000 -1.0000 | 0.0000
0.0000 2.0000 -1.0000 | 0.0000
0.0000 1.0000 0.0000 | 10.0000

位置:row_pos = 1, col_pos = 1
選主元
1.0000 0.0000 -1.0000 | 0.0000
0.0000 2.0000 -1.0000 | 0.0000
0.0000 1.0000 0.0000 | 10.0000

交換兩行
1.0000 0.0000 -1.0000 | 0.0000
0.0000 2.0000 -1.0000 | 0.0000
0.0000 1.0000 0.0000 | 10.0000

消元
1.0000 0.0000 -1.0000 | 0.0000
0.0000 1.0000 -0.5000 | 0.0000
0.0000 0.0000 0.5000 | 10.0000

位置:row_pos = 2, col_pos = 2
選主元
1.0000 0.0000 -1.0000 | 0.0000
0.0000 1.0000 -0.5000 | 0.0000
0.0000 0.0000 0.5000 | 10.0000

交換兩行
1.0000 0.0000 -1.0000 | 0.0000
0.0000 1.0000 -0.5000 | 0.0000
0.0000 0.0000 0.5000 | 10.0000

消元
1.0000 0.0000 0.0000 | 20.0000
0.0000 1.0000 0.0000 | 10.0000
0.0000 0.0000 1.0000 | 20.0000

方程組有解

方程組及其解
1.0000 0.0000 0.0000 | 20.0000
0.0000 1.0000 0.0000 | 10.0000
0.0000 0.0000 1.0000 | 20.0000

x[0] = 20.0000
x[1] = 10.0000
x[2] = 20.0000

PS:這里再為大家推薦幾款計(jì)算工具供大家參考使用:

在線一元函數(shù)(方程)求解計(jì)算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue

在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Pytorch訓(xùn)練過(guò)程出現(xiàn)nan的解決方式

    Pytorch訓(xùn)練過(guò)程出現(xiàn)nan的解決方式

    今天小編就為大家分享一篇Pytorch訓(xùn)練過(guò)程出現(xiàn)nan的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python threading模塊中l(wèi)ock與Rlock的使用詳細(xì)講解

    Python threading模塊中l(wèi)ock與Rlock的使用詳細(xì)講解

    python的thread模塊是比較底層的模塊,python的threading模塊是對(duì)thread做了一些包裝的,可以更加方便的被使用。這篇文章主要介紹了Python threading模塊中l(wèi)ock與Rlock的使用
    2022-10-10
  • Python數(shù)學(xué)建模PuLP庫(kù)線性規(guī)劃實(shí)際案例編程詳解

    Python數(shù)學(xué)建模PuLP庫(kù)線性規(guī)劃實(shí)際案例編程詳解

    本節(jié)以一個(gè)實(shí)際數(shù)學(xué)建模案例,來(lái)為大家講解PuLP求解線性規(guī)劃問(wèn)題的建模與編程。來(lái)鞏固加深大家對(duì)Python數(shù)學(xué)建模PuLP庫(kù)線性規(guī)劃的運(yùn)用理解
    2021-10-10
  • Numpy數(shù)組轉(zhuǎn)置的實(shí)現(xiàn)

    Numpy數(shù)組轉(zhuǎn)置的實(shí)現(xiàn)

    本文主要介紹了Numpy數(shù)組轉(zhuǎn)置的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python多次繪制條形圖的方法

    python多次繪制條形圖的方法

    這篇文章主要為大家詳細(xì)介紹了python多次繪制條形圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • python第三方模塊xmltodict庫(kù)優(yōu)雅處理xml格式為json

    python第三方模塊xmltodict庫(kù)優(yōu)雅處理xml格式為json

    這篇文章主要為大家介紹了python第三方模塊xmltodict庫(kù)優(yōu)雅處理xml格式為json實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python類的方法屬性與方法屬性的動(dòng)態(tài)綁定代碼詳解

    python類的方法屬性與方法屬性的動(dòng)態(tài)綁定代碼詳解

    這篇文章主要介紹了python類的方法屬性與方法屬性的動(dòng)態(tài)綁定代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Python 爬蟲(chóng)的原理

    Python 爬蟲(chóng)的原理

    這篇文章主要介紹了Python 爬蟲(chóng)的原理,文中講解非常細(xì)致,幫助大家更好的學(xué)習(xí)和認(rèn)識(shí)爬蟲(chóng),感興趣的朋友可以了解下
    2020-07-07
  • Python通過(guò)樸素貝葉斯和LSTM分別實(shí)現(xiàn)新聞文本分類

    Python通過(guò)樸素貝葉斯和LSTM分別實(shí)現(xiàn)新聞文本分類

    樸素貝葉斯法(Naive Bayes model)是基于貝葉斯定理與特征條件獨(dú)立假設(shè)的分類方法。LSTM則是一種時(shí)間循環(huán)神經(jīng)網(wǎng)絡(luò),適合于處理和預(yù)測(cè)時(shí)間序列中間隔和延遲相對(duì)較長(zhǎng)的重要事件。本文將通過(guò)這兩個(gè)方法分別實(shí)現(xiàn)新聞文本分類,需要的可以參考一下
    2021-12-12
  • python中尾遞歸用法實(shí)例詳解

    python中尾遞歸用法實(shí)例詳解

    這篇文章主要介紹了python中尾遞歸用法,較為詳細(xì)的分析了尾遞歸原理與相關(guān)使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04

最新評(píng)論