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

python如何生成任意n階的三對(duì)角矩陣

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

如何生成任意n階的三對(duì)角矩陣

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

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

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

import numpy as np
def generate_matrix(n):
    # 使用對(duì)角矩陣相加得到三對(duì)角矩陣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矩陣分成上三角下三角和對(duì)角三個(gè)矩陣

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.

先講一個(gè)方陣的對(duì)角線下的下三角陣和對(duì)角線上的上三角陣提取出來(lái)(如果只需要上下三角陣,則去掉tril/triu中的第二個(gè)參數(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]])

而單獨(dú)要提取對(duì)角線上的元素作為一個(gè)矩陣有如下兩種方法:

1、運(yùn)用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、運(yùn)用下三角矩陣減去次下三角矩陣(即對(duì)角線下的下三角陣):

>>> 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]])

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

相關(guān)文章

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

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

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

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

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

    Python性能測(cè)試工具Locust安裝及使用

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

    python 中if else 語(yǔ)句的作用及示例代碼

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

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

    本文介紹的pdf轉(zhuǎn)word功能還有一些待完善地方,例如可增加預(yù)覽功能,實(shí)現(xiàn)每頁(yè)預(yù)覽,當(dāng)然我們可以在后續(xù)階段逐漸完善,對(duì)基于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ù)庫(kù)–>數(shù)據(jù)加載器的調(diào)用或者設(shè)計(jì)–>批量調(diào)用進(jìn)行訓(xùn)練或者其他作用,需要的朋友可以參考下
    2022-08-08
  • conda創(chuàng)建pytorch環(huán)境報(bào)錯(cuò)

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

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

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

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

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

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

    聊聊python的gin庫(kù)的介紹和使用

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

最新評(píng)論

临泽县| 金华市| 兴国县| 石景山区| 绍兴县| 通道| 顺义区| 西畴县| 隆化县| 闵行区| 云安县| 祥云县| 萨嘎县| 宁蒗| 泽州县| 阳曲县| 平和县| 二连浩特市| 铜山县| 湟源县| 深泽县| 萨迦县| 富顺县| 瑞昌市| 玉田县| 贵港市| 平果县| 石渠县| 武川县| 江津市| 藁城市| 忻城县| 虹口区| 宜良县| 高平市| 咸宁市| 湟中县| 阿鲁科尔沁旗| 修武县| 甘德县| 阜阳市|