999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python在線性代數知識點可視化中的應用

2025-07-17 00:00:00王恒方曉峰張輝
電腦知識與技術 2025年16期
關鍵詞:可視化

摘要:線性代數是理工科專業的一門重要數學基礎課,也是大數據和人工智能的核心和基礎。結合線性代數知識較為抽象和復雜的特點,文章基于Python程序語言,結合圖形圖像處理,將矩陣運算可視化,旨在幫助學生理解線性代數抽象概念,提升編程能力和學習興趣。

關鍵詞: 線性代數;Python;矩陣運算;可視化;卷積;圖像壓縮;圖形圖像處理

中圖分類號:TP3" "文獻標識碼:A

文章編號:1009-3044(2025)16-0124-05

開放科學(資源服務) 標識碼(OSID)

0 引言

隨著人工智能技術的快速發展,其在各個領域的應用日益廣泛。線性代數是人工智能技術核心和關鍵的數學基礎之一[1],主要用于大規模數據處理和計算中的矩陣運算,比如人工神經網絡中的權重矩陣、基于主成分分析的人臉識別算法中的特征提取、數據壓縮技術中的奇異值分解方法等。因此,線性代數課程的學習對于學生了解和掌握人工智能技術十分重要,能夠為將來更好地利用人工智能技術解決實際問題打下重要基礎。然而,學生在學習線性代數過程中,常常因為概念的抽象難懂、計算的復雜枯燥而產生畏難情緒,同時對線性代數在實際中的應用了解甚少,這些問題導致學生學習線性代數興趣不高,不能很好地達到對概念理解和消化吸收的效果,這就給線性代數教學帶來了一定的挑戰。2018年4月,教育部印發了《高等學校人工智能創新行動計劃》的通知[2],指出要根據人工智能理論和技術的普適性、遷移性和滲透性等特點,將人工智能學科專業教育進行交叉融合,根據這一指導意見,結合線性代數在人工智能領域的重要應用價值,將人工智能相關應用融入線性代數課程教學十分必要,其中一個重要的途徑就是借助計算機程序語言將線性代數知識可視化。一方面,這有利于打破傳統課堂以知識講授為主的教學模式,化解線性代數課程內容的抽象性,使得學生了解線性代數知識的實際應用,提升學生的學習興趣;另一方面,使得學生掌握數學軟件和程序設計的方法,為以后運用線性代數知識解決工程實際問題奠定基礎。目前,大部分線性代數課程主要采用MATLAB、Maple、GeoGebra等軟件[3-6] 實現可視化教學,雖然一定程度上可以達到幫助學生理解知識的效果,但是這些軟件存在擴展性較小、安裝復雜等問題。因此,本文以圖形和數字圖像處理為背景,通過Python程序設計為學生直觀呈現矩陣加法、數乘、乘法、卷積運算,以及在人工智能領域廣泛應用的奇異值分解方法在圖形圖像處理中的實際應用,將線性代數的抽象概念以直觀的圖形圖像呈現出來,加深學生對概念的理解,同時了解和掌握Python程序設計的知識,提升編程能力和學習線性代數的興趣,并且為后續學習和掌握人工智能技術打下基礎。

1 Python可視化教學的優勢

運用Python將線性代數知識點可視化,其優勢主要有以下幾個方面。

1.1 數據和圖像處理能力強

Python作為人工智能領域應用最為廣泛的編程語言,具有豐富的數據處理、圖形圖像處理與可視化標準庫,如Numpy、OpenCV、Matplotlib、Pillow等。使其具有以矩陣計算為基礎的強大數學計算能力和分析功能,以及豐富的可視化表現功能[7-8]。

1.2 代碼簡潔易運行

本科大二年級學生雖然已經學習過C語言程序設計課程,但多數學生編程基礎較為薄弱。Python語言代碼簡潔、結構清晰,標準庫所提供的豐富的數據結構、算法和函數,可通過代碼直接調用,這可以大大降低學生學習編程的負擔,從而快速上手和掌握。并且Python較MATLAB、C語言等程序軟件更易安裝,而且可免費獲取,在Windows、Linux、Mac等操作系統均可運行。

1.3 線上學習資源豐富

Python是一種開源語言,擁有龐大的開發者社區,因此,有豐富的在線教程、文檔和示例代碼可供學習參考。學生可以根據自己的學習需求,在課堂學習的基礎上,在線搜索拓展學習資料,通過程序設計實現更多線性代數在圖形圖像處理中的應用,從而進一步鞏固線性代數知識,提升編程興趣和能力。

2 線性代數知識點可視化應用

文章基于Python3.12版本中的OpenCV模塊進行線性代數知識點可視化,課前向學生發布圖形圖像處理學習資料和源程序以及Python安裝包。 OpenCV模塊安裝流程為:打開系統運行,輸入命令提示符cmd,在運行窗口輸入pip install opencv_python即可完成下載安裝。在編寫程序時,通過Python自帶IDLE進行代碼編寫,輸入import cv2和import Numpy as np分別導入OpenCV和Numpy模塊,用于實現圖形圖像處理和矩陣運算。

首先,向學生介紹矩陣的基本運算的定義和運算法則,如加法、減法、數乘、轉置、乘法等。接下來,結合圖形圖像處理,通過Python程序設計,將抽象的矩陣運算可視化。

2.1 圖形變換

在計算機中,二維圖形通常用幾何圖形的頂點坐標構成的矩陣表示,如矩陣[A=100200200100200200300300T]代表一個邊長為100的正方形,頂點分別為[(100,200)]、[(200,200)]、[(200,300)]、[(100,300)],第一列元素代表頂點的橫坐標,第二列元素代表頂點的縱坐標。通過輸入命‘A=np.array([[100, 200], [200, 200], [200, 300], [100, 300]])’生成圖形矩陣。接下來,利用矩陣的加法、乘法運算實現圖形的平移、旋轉和伸縮變換。

1) 圖形的平移。

圖形平移的原理是通過圖形矩陣[A]加上平移變換矩陣[T],從而對圖形頂點的橫、縱坐標分別改變相同的量,實現圖形的平移。比如將圖形[A]沿[x]軸平移150,沿[y]軸平移50,此時平移變換矩陣[T=15015015015050505050T],[M=A+T]就是平移之后的圖形矩陣,平移前后的圖形(圖1) 。

2) 圖形的伸縮。

根據矩陣乘法定義和坐標變換規則,圖形的伸縮是通過給圖形矩陣[A]右乘伸縮變換矩陣[T=a00b]實現,此時,[M=AT]為伸縮之后的圖形矩陣。由

[M=AT=100400400100200200500500Ta00b=100a400a400a100a200b200b500b500bT]" "(1)

可以看出,圖形[M]的橫坐標為圖形[A]的[a]倍,縱坐標為圖形[A]的[b]倍,表示將圖形[A]沿[x]軸拉伸為原來的[a]倍,沿[y]軸拉伸為原來的[b]倍。若取[a=2],[b=1.6],則伸縮前后的圖形(圖2) 。

3) 圖形的旋轉。

圖形的旋轉是通過對圖形各頂點進行旋轉實現的,設頂點坐標為[(x1,y1)],根據線性變換的定義,旋轉之后的坐標可表示為:

[(x2,y2)=(x1,y1)cosθ-sinθsinθcosθ=(x1cosθ+y1sinθ,-x1sinθ+y1cosθ)]" (2)

式中:[T=cosθ-sinθsinθcosθ]表示旋轉變換矩陣,根據極坐標表示方法,[x1=rcosφ],

[y1=rsinφ],[r]和[φ]分別表示向量[(x1,y1)]的長度和角度。代入上式,經整理可得:

[(x2,y2)=(rcos(θ+φ),rsin(θ+φ))]" " (3)

由此可知,若[θgt;0],表示將圖形繞原點逆時針旋轉[θ]角;若[θlt;0],表示將圖形繞原點順時針旋轉[θ]角。若將圖形[A]逆時針旋轉40度,則[θ=40],旋轉前后的圖形(圖3) 。

當然,也可以同時對圖形進行旋轉和伸縮變換,比如在以上旋轉變換后再將圖形伸長為原來的1.4倍,只要對旋轉后的圖形矩陣再右乘伸縮變換矩陣[1.4001.4],即可得到旋轉和伸縮后的圖形矩陣為[M=1.4001.4cos40-sin40sin40cos40A],變換前后的圖形(圖4) 。

通過平面圖形的平移、旋轉、伸縮過程直觀展示矩陣加法和乘法運算,可以讓學生切實感受矩陣運算在圖形變換中的實際應用,同時結合Python通俗易懂的編程風格,可以提升學生學習編程的興趣。

2.2 數字圖像處理

1) 數字圖像的表示。

數字圖像包括灰度圖像和彩色圖像,在計算機中是以像素矩陣存儲和表示的。其中,灰度圖像僅由一個像素矩陣表示,矩陣的行數和列數分別表示圖像的高度和寬度,矩陣的元素值表示每個像素的灰度值,例如兩個大小為512×512的灰度圖(圖5) ,在計算機中由兩個512×512的灰度值矩陣存儲和表示。灰度圖像矩陣中的元素用8位整數型字符表示,因此,每個像素的灰度值是范圍從0到255的256個整數,0代表黑色,255代表白色,數字越大代表顏色越亮。彩色圖像則由一個張量表示,即紅、綠、藍三種基本顏色的圖像疊加而成(圖6) 。本文結合矩陣的加法、減法、數乘、乘法等基本運算,以及卷積和奇異值分解,對灰度圖像進行常見的幾種處理。

2) 圖像疊加。

灰度圖像本質上是一個矩陣,可以通過矩陣加法實現兩個圖像的疊加。[A]和[B]分別為原圖像,則[C=A+B]為疊加后的圖像,這里需要提醒學生的是圖像[A]、[B]的矩陣必須是同型矩陣,否則不滿足矩陣加法的運算法則,調用命令‘C = cv2.add(A, B)’即可完成圖像疊加,疊加后的效果(圖7) 。

3) 圖像亮度調節。

由于圖像矩陣中的元素值越大圖像越亮,所以,可以通過矩陣加、減法調節圖像的亮度。這里需要提醒學生矩陣加、減運算時可能會出現像素值超出0到255范圍的情況,即像素值溢出,一般可采用歸一化和截斷兩種解決方法。這里采用截斷法,調用命令‘np.clip(C, 0, 255)’,將像素值限制在0到255的范圍之內,調節亮度前后的圖像(圖8) 。

4) 圖像對比度調節。

對比度是指圖像中明暗區域最亮的白和最暗的黑之間亮度層級的差異,差異范圍越大則對比度越大,差異范圍越小則對比度越小。可以通過矩陣的數乘運算實現圖像對比度的調節,輸入命令‘C=[α]* A’,[α]表示調節系數,分別取[α=0.5]和[α=1.5],表示將圖像的對比度降低至原來的0.5倍和增大至原來的1.5倍,調節前后的圖像(圖9) 。

5) 圖像的底片。

圖像的底片又叫負片,是一種和原圖像顏色顛倒的黑白圖像,要生成一個圖像的底片,可以直接用元素值全為255的矩陣減去原圖像矩陣,可輸入命令‘C=255-A’得到底片圖像的矩陣。需要向學生強調,這里的255并不是一個數,它表示一個與圖像[A]大小相同的純白色圖像,原圖像和底片(圖10) 。

6) 圖像加密。

圖像加密是保護圖像信息的一種重要技術手段,本質上是通過改變圖像矩陣的像素值隱藏原圖像信息[9]。可以通過矩陣乘法實現數字圖像的加密[10],根據矩陣乘法法則,通過給圖像矩陣[A]左乘一個和[A]行數相同的可逆矩陣[Q],得到加密后的圖像矩陣[C]。調用命令‘[row col]=A.shape[:2]’獲取原圖像矩陣的行數和列數,再通過命令‘Q=np.random.randint(-100, 100, size=(size, size))’隨機生成一個元素值介于-100到100的秘鑰矩陣,并通過行列式計算命令‘det=np.linalg.det(Q)’判斷矩陣行的列式是否為零,確保矩陣可逆,則加密后的矩陣為[C=QA]。如果要對加密圖像進行解密,根據逆矩陣的概念,給矩陣[C]左乘矩陣[Q]的逆矩陣[Q-1],即可得到原圖像[A=Q-1C=Q-1QA]。加密、解密后的圖像(圖11) 。

由于密鑰矩陣[Q]是一個階數為512的可逆矩陣,而這樣的矩陣有無窮多個,因此,這種加密方法具有較好的抗攻擊性,并且解密之后的圖像的還原度較高。

2.3 圖像濾波

圖像濾波是指在盡可能保留圖像特征的條件下對目標圖像的噪聲進行抑制,是常用的圖像處理方法,可分為線性濾波和非線性濾波[11]。其中,線性濾波是通過圖像與卷積核(或稱濾波器) 進行卷積運算來完成,卷積核是一個[n]階矩陣,且[n]是一個奇數,以保證卷積核有一個中心點。濾波過程簡單來說,就是對圖像的每一個像素點,計算它的鄰域像素和卷積核的對應元素的乘積,然后相加,作為該像素位置的值。卷積運算在人工智能領域有著重要應用,比如深度學習中的卷積神經網絡算法就包含大量的卷積運算。卷積運算的具體公式如下:

[H(x,y)=i=-aaj=-bbW(i,j)F(x+i,y+j)]" " " (4)

式中:[F]表示原圖像,[W]表示卷積核,[H]為濾波之后的圖像矩陣。可以看出卷積運算是一種特殊的矩陣運算,通過卷積核[W]中的元素與圖像矩陣中包含[F(x,y)]及其周圍的共[(2a+1)(2b+1)]個元素對應相乘再相加,得到濾波后的圖像矩陣中的元素[H(x,y)]。常見的卷積核有模糊、銳化、浮雕卷積核[12],且通常采用以下的三階方陣:

[191919191919191919],[-1-1-1-19-1-1-1-1],[-1-10-101011]" "(5)

以模糊卷積過程為例,有[H(x,y)=19i=-aaj=-bbF(x+i,y+j)],可以看出濾波后的像素值[H(x,y)]是原圖像像素值鄰域內的像素的算數平均,因此,圖像信息趨于平均,表現出模糊效果。同樣,銳化卷積核起著突出圖像中的邊緣,增強圖像的細節的作用,而浮雕卷積核能夠使圖像產生凹凸感覺,類似于雕刻的效果。

在Python程序中,卷積運算通過調用函數‘C=cv2.filter2D(A, -1, kernel)’實現,A為原圖像,kernel為卷積核,-1表示輸出圖像與輸入圖像的數據類型相同,如下是濾波后的三類圖像(圖12) 。

2.4 圖像壓縮

奇異值分解是線性代數的重要內容之一,也被廣泛應用于人工智能領域的無監督學習算法中,如圖像壓縮、推薦系統、數據降維等。根據奇異值分解的定義,任意一個矩陣[Am×n],都可以表示成以下形式[13]:

[Am×n=Um×mΣm×nVTn×n]" " " (6)

對圖像矩陣[A]做以上奇異值分解,其中,[Um×m]包含了有關行的所有信息,[VTn×n]包含了有關列的所有信息,[Σm×n]由[A]的奇異值構成,且奇異值從左上角到右下角由大到小排列。保留前[k]個較大的奇異值,可將矩陣[A]近似表示為:

[Am×n≈Um×kΣk×kVTk×n]" " " (7)

通常情況下,[k?m,n],因此圖像大小由[mn]變為[mk+k2+kn=k(m+k+n)],一般[k(m+k+n)?mn],這就實現了原始圖像的壓縮、降維和去除冗余信息,節省了存儲空間,同時大大減少了矩陣運算的計算量。

調用Numpy庫中的linalg線性代數工具箱的svd()函數求解圖像矩陣[A]的奇異值,調用格式為‘U, S, VT=np.linalg.svd(A)’,U、S、VT分別表示矩陣[Um×m]、[Σm×n]、[VTn×n]。通過保留合適數量的奇異值,再對圖像進行還原,這里分別保留最大的前5、10、20、30、40、50、80個奇異值,壓縮前后的圖像(圖13) 。

原圖像大小為512×512=262 144,當保留前30個奇異值時,壓縮圖像和原圖像相比清晰可辨,此時分解矩陣[U]、[Σ]、[VT]大小分別為512×30、30×30、512×30,總大小為31 620,遠小于原圖像的大小。壓縮后的圖像占據內存60.1 kB,原圖像占據內存84.4 kB,保留前30個奇異值還原后的壓縮圖像所占存儲空間為原圖像的71%。

通過圖像的壓縮處理過程,可以讓學生在理解奇異值分解的本質和內涵的同時,直觀感受奇異值大小對圖像信息的影響,體會線性代數知識在圖像處理中的應用。

3 結束語

新的時代背景下,人工智能和大數據技術引領了新一輪科技革命,作為其中的核心理論基礎的線性代數為技術的革新和發展起到了重要作用。鑒于此,文章提出了在線性代數教學中引入Python程序設計語言,并結合圖形圖像處理,將矩陣加法、減法、數乘、乘法等基本運算,以及卷積和奇異值分解等概念可視化。一方面,這使得抽象的線性代數知識變得生動,提升了學生的學習興趣;另一方面,通過程序設計與代碼編寫,在進一步鞏固課程內容的同時,提升了學生的程序設計能力,為將來進一步學習和應用人工智能技術打下堅實基礎。當然,線性代數知識在大數據和人工智能領域還有著其他廣泛的應用,因此,還可以開發更為豐富的可視化應用案例。并且,可以結合學生的特定專業背景,開發具有專業特色的可視化教學資源,使線性代數教學更具有針對性,同時,滿足學生的個性化學習需求。

參考文獻:

[1] 操曉娟,徐文婷.新工科背景下人工智能賦能“線性代數”課程的路徑與策略[J].黑龍江教育(理論與實踐),2024(12):46-48.

[2] 李歡冬,樊磊.“可能” 與“不可能”:當前人工智能技術教育價值的再探討:《高等學校人工智能創新行動計劃》解讀之一[J].遠程教育雜志,2018,36(5):38-44.

[3] 褚鵬飛,路云.淺談GeoGebra軟件在線性代數可視化教學中的應用[J].大學數學,2024,40(1):56-64.

[4] 李慶春,楊雯雯,桑海風.基于Maple軟件的高等代數可視化教學案例研究[J].白城師范學院學報,2018,32(6):23-26.

[5] 周克娟.Matlab數字圖像處理與矩陣概念及運算教學的融合[J].廣西廣播電視大學學報,2022,33(5):27-32.

[6] 張穎,張會生.線性代數可視化教學的若干實踐[J].電腦知識與技術,2023,19(18):106-109

[7] 齊秀文,徐嬌嬌,宋帆.Python軟件在線性代數課程中的應用探索[J].應用數學進展,2024,13(2):501-510.

[8] 李清華,王寶娟.線性代數知識點的可視化教學設計探索與實踐[J].大學數學,2022,38(2):112-119.

[9] 王曉輝.基于矩陣變換的圖像加密方法[J].微型電腦應用,2021,37(9):1-3,7.

[10] 徐麗新,吳明珠.基于整數矩陣乘法的圖像加密算法[J].電子制作,2019(9):45-47.

[11] 黃杉.數字圖像處理:基于OpenCV-Python[M].北京:電子工業出版社,2023.

[12] 王曉明,朱一心.基于STEM教育理念的線性代數可視化教學實踐[J].首都師范大學學報(自然科學版),2020,41(1):62-66.

[13] WILLIAM M.Geophysical data analysis:discrete inverse theory[M].Kidlington:Elsevier Academic Press,2012:132-147.

【通聯編輯:朱寶貴】

猜你喜歡
可視化
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
主站蜘蛛池模板: 国产视频你懂得| 成人在线亚洲| 粗大猛烈进出高潮视频无码| 婷婷色丁香综合激情| 日韩AV无码免费一二三区| av色爱 天堂网| 国产成人免费高清AⅤ| 亚洲精品日产AⅤ| 久久久久久久久18禁秘| 国产丝袜啪啪| 天天色综网| 手机在线国产精品| 成人午夜久久| 69av在线| 国产亚洲男人的天堂在线观看| 成人va亚洲va欧美天堂| 亚洲首页在线观看| 日本精品αv中文字幕| 国产无码在线调教| 国产成人精品2021欧美日韩 | 国产白浆在线观看| 亚洲人成网站观看在线观看| 在线看国产精品| 在线免费无码视频| 为你提供最新久久精品久久综合| 国产自无码视频在线观看| 久久久精品无码一区二区三区| 日本亚洲成高清一区二区三区| 高清大学生毛片一级| 国产精品性| 欧美成人综合视频| 扒开粉嫩的小缝隙喷白浆视频| 国产精品免费p区| 午夜福利免费视频| 日本精品中文字幕在线不卡| 国产色网站| 波多野一区| 亚洲AⅤ永久无码精品毛片| 久久久久无码国产精品不卡| 日韩毛片免费观看| 亚洲高清国产拍精品26u| 欧美成人免费| 亚洲婷婷六月| 国产精品女主播| 婷婷亚洲最大| 少妇被粗大的猛烈进出免费视频| av在线手机播放| 久久黄色小视频| 日韩欧美中文字幕一本| 第一页亚洲| 亚洲精品福利视频| 亚洲天堂久久久| 亚洲最大综合网| 亚洲婷婷丁香| 亚洲成人黄色网址| 99福利视频导航| 成年人国产视频| 久操线在视频在线观看| 久久99精品久久久久纯品| 天堂va亚洲va欧美va国产| 日韩精品欧美国产在线| 91麻豆精品国产高清在线| 欧美一区精品| 日韩二区三区无| 亚洲视频二| 国产精品丝袜在线| 国产精品一区二区国产主播| 国产啪在线91| 免费一级毛片在线播放傲雪网| 九月婷婷亚洲综合在线| 无码在线激情片| 日韩成人午夜| 久久久久久久97| 九色视频一区| 91久久偷偷做嫩草影院精品| 无码一区18禁| 美女裸体18禁网站| 91香蕉视频下载网站| 黄色成年视频| 亚洲色图欧美在线| 国产精品七七在线播放| 免费AV在线播放观看18禁强制|