最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python如何生成任意n階的三對角矩陣

 更新時間:2022年05月11日 09:30:43   作者:潮一  
這篇文章主要介紹了python如何生成任意n階的三對角矩陣,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

如何生成任意n階的三對角矩陣

數(shù)學(xué)作業(yè)要求實現(xiàn)共軛梯度法的算法。

題目中的矩陣A是n=400/500/600的三對角矩陣。

在網(wǎng)上查閱資料未果后,自己解決了。

import numpy as np
def generate_matrix(n):
    # 使用對角矩陣相加得到三對角矩陣A
    array_a = np.diag([-2] * n)
    array = np.diag([1] * (n-1))
    a = np.zeros((n-1))
    b = np.zeros(n)
    array_b = np.insert(array, 0, values=a, axis=0)# 添加行
    array_b = np.insert(array_b, (n-1), values=b, axis=1)# 添加列
    array_c = np.insert(array, (n-1), values=a, axis=0)
    array_c = np.insert(array_c, 0, values=b, axis=1)
    matrix_A = array_a + array_b + array_c
    print(array_a)
    print(array_b)
    print(array_c)
    print(matrix_A)

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    n = 5
    generate_matrix(n)

結(jié)果輸出:

C:\Users\87167\Anaconda3\envs\tf\python.exe C:/Users/87167/PycharmProjects/GongETiDuFa/main.py
[[-2  0  0  0  0]
 [ 0 -2  0  0  0]
 [ 0  0 -2  0  0]
 [ 0  0  0 -2  0]
 [ 0  0  0  0 -2]]
[[0 0 0 0 0]
 [1 0 0 0 0]
 [0 1 0 0 0]
 [0 0 1 0 0]
 [0 0 0 1 0]]
[[0 1 0 0 0]
 [0 0 1 0 0]
 [0 0 0 1 0]
 [0 0 0 0 1]
 [0 0 0 0 0]]
[[-2  1  0  0  0]
 [ 1 -2  1  0  0]
 [ 0  1 -2  1  0]
 [ 0  0  1 -2  1]
 [ 0  0  0  1 -2]]

python矩陣分成上三角下三角和對角三個矩陣

diagonal

Return specified diagonals.

diagflat

Create a 2-D array with the flattened input as a diagonal.

trace

Sum along diagonals.

triu

Upper triangle of an array.

tril

Lower triangle of an array.

先講一個方陣的對角線下的下三角陣和對角線上的上三角陣提取出來(如果只需要上下三角陣,則去掉tril/triu中的第二個參數(shù))

上代碼(這里使用tril和triu都是返回array形式,還需使用mat轉(zhuǎn)換回矩陣):

>>> m = np.mat("1,2,3;4,5,6;7,8,9")
>>> m
matrix([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
>>> L = np.tril(m,-1)
>>> L
array([[0, 0, 0],
       [4, 0, 0],
       [7, 8, 0]])
>>> U = np.triu(m,1)
>>> U
array([[0, 2, 3],
       [0, 0, 6],
       [0, 0, 0]])

而單獨要提取對角線上的元素作為一個矩陣有如下兩種方法:

1、運用np.diag兩次,再使用mat轉(zhuǎn)換回矩陣:

>>> D = np.diag(np.diag(m))
>>> D
array([[1, 0, 0],
? ? ? ?[0, 5, 0],
? ? ? ?[0, 0, 9]])
>>> D = np.mat(D)
>>> D
matrix([[1, 0, 0],
? ? ? ? [0, 5, 0],
? ? ? ? [0, 0, 9]])

2、運用下三角矩陣減去次下三角矩陣(即對角線下的下三角陣):

>>> D = np.tril(m) - L
>>> D
array([[1, 0, 0],
? ? ? ?[0, 5, 0],
? ? ? ?[0, 0, 9]])
>>> D = np.mat(D)
>>> D
matrix([[1, 0, 0],
? ? ? ? [0, 5, 0],
? ? ? ? [0, 0, 9]])

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實現(xiàn)車牌識別的示例代碼

    python實現(xiàn)車牌識別的示例代碼

    這篇文章主要介紹了python實現(xiàn)車牌識別的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 詳解利用上下文管理器擴(kuò)展Python計時器

    詳解利用上下文管理器擴(kuò)展Python計時器

    本文將和大家一起了解什么是上下文管理器?和?Python?的?with?語句,以及如何完成自定義。然后擴(kuò)展?Timer?以便它也可以用作上下文管理器,感興趣的可以了解一下
    2022-06-06
  • Python性能測試工具Locust安裝及使用

    Python性能測試工具Locust安裝及使用

    這篇文章主要介紹了Python性能測試工具Locust安裝及使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • python 中if else 語句的作用及示例代碼

    python 中if else 語句的作用及示例代碼

    python中的if-else語句是一個判斷性語句,既然是判斷就要有條件以及滿足條件與不滿足的情況,一下將講解一些if-else語句的知識,需要的朋友參考下吧
    2018-03-03
  • 基于PyQt5完成pdf轉(zhuǎn)word功能

    基于PyQt5完成pdf轉(zhuǎn)word功能

    本文介紹的pdf轉(zhuǎn)word功能還有一些待完善地方,例如可增加預(yù)覽功能,實現(xiàn)每頁預(yù)覽,當(dāng)然我們可以在后續(xù)階段逐漸完善,對基于PyQt5完成的pdf轉(zhuǎn)word功能感興趣的朋友一起看看吧
    2022-06-06
  • pytorch加載自己的數(shù)據(jù)集源碼分享

    pytorch加載自己的數(shù)據(jù)集源碼分享

    這篇文章主要介紹了pytorch加載自己的數(shù)據(jù)集源碼分享,標(biāo)準(zhǔn)的數(shù)據(jù)集流程梳理分為數(shù)據(jù)準(zhǔn)備以及加載數(shù)據(jù)庫–>數(shù)據(jù)加載器的調(diào)用或者設(shè)計–>批量調(diào)用進(jìn)行訓(xùn)練或者其他作用,需要的朋友可以參考下
    2022-08-08
  • conda創(chuàng)建pytorch環(huán)境報錯

    conda創(chuàng)建pytorch環(huán)境報錯

    這篇文章主要介紹了conda創(chuàng)建pytorch環(huán)境報錯,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • Python中的random函數(shù)實例詳解

    Python中的random函數(shù)實例詳解

    random模塊提供生成偽隨機數(shù)的函數(shù),在使用時需要導(dǎo)入random模塊,這篇文章主要介紹了Python中的random函數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程

    Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程

    django+uwsgi的部署實在是太蛋疼了.網(wǎng)上已有的教程似乎有新版本的兼容問題。最后跑到uwsgi官網(wǎng)上找的教程終于跑通了.. 不過官網(wǎng)的教程似乎有引導(dǎo)教學(xué)性質(zhì),部署的時候就顯得很繞彎路,在這里記錄下來精簡內(nèi)容
    2014-11-11
  • 聊聊python的gin庫的介紹和使用

    聊聊python的gin庫的介紹和使用

    gin像一個封裝了參數(shù)配置的類,使用這個類將使得大量的參數(shù)配置變得簡單清晰,本文重點給大家介紹python的gin庫的介紹和使用,感興趣的朋友跟隨小編一起看看吧
    2021-04-04

最新評論

东丰县| 阿勒泰市| 读书| 清水县| 丹阳市| 盐源县| 西畴县| 阿荣旗| 平顺县| 离岛区| 临城县| 镇原县| 玛多县| 临泉县| 云浮市| 泗洪县| 通山县| 磐安县| 镇坪县| 商丘市| 大埔县| 察隅县| 加查县| 北宁市| 龙岩市| 荔浦县| 巴马| 望都县| 乐清市| 上犹县| 屏山县| 泾源县| 锦屏县| 海城市| 五家渠市| 中江县| 绿春县| 常德市| 江永县| 定南县| 武山县|