国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Matlab在線性代數實踐教學中的應用

2014-07-18 18:58邱廣文
電腦知識與技術 2014年13期
關鍵詞:線性代數實踐教學

Matlab在線性代數實踐教學中的應用

邱廣文

(昭通學院圖書館,云南 昭通 657000)

摘要:文中論述了在線性代數教學中培養(yǎng)學生科學計算能力的必要性和重要性,通過把Matlab引入到定理驗證、含符號變量行列式和線性方程組的教學實踐,說明將線性代數理論、應用及Matlab有機結合,可以幫助學生直觀地理解掌握理論知識,通過Matlab的應用掌握科學計算方法,提高學生的科學計算能力。

關鍵詞:線性代數;Matlab;科學計算能力;實踐教學

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2014)13-3026-03

Practice Teaching, the Application of Matlab in Linear Algebra

QIU Guang-wen

(Zhaotong of Yunnan Zhaotong College Library, Zhaotong 657000, China)

Abstract: This paper discusses the in linear algebra teaching to cultivate students the necessity and importance of scientific computing ability, through the Matlab is introduced into the theorem of validation, with symbolic variable determinant and the teaching practice of system of linear equations, Matlab shows that the linear algebra theory, application and organic combination, can help students intuitively understand master the theoretical knowledge, through the application of Matlab to master scientific computing method, improve the students' ability of scientific computing.

Key words: Linear algebra; Matlab; scientific computing ability; practice teaching

MATLAB是一個交互式的矩陣運算軟件,是“Matrix Laboratoy” 的縮寫,意思是“矩陣實驗室”,由MathWorks公司發(fā)布。多年來MATLAB經歷一系列的擴展和改版,具有以矩陣為基礎的強大的數值分析、矩陣運算、信號處理、可視化圖形表現、建模仿真功能,以及方便的程序設計能力,現已成為科學及工程計算中的首選軟件。

在高校線性代數教學過程中,把線性代數的理論、應用及MATLAB三者有機融為一體,在教學過程中穿插Matlab實例,讓學生通過Matlab練習加深對線性代數的理解,結合實際問題提高學生應用線性代數解決實際問題的能力。

1 在線性代數教學中培養(yǎng)學生的科學計算能力

線性代數是討論矩陣理論、與矩陣結合的有限維向量空間及其線性變換理論的一門學科。廣泛應用于物理、力學、信號與信號處理、系統控制、電子、通信、航空等學科領域,隨著計算機和網絡技術的廣泛應用,線性代數也成為計算機圖形學、計算機輔助設計、密碼學、虛擬現實等技術的理論和算法基礎的一部分,因而成為現代各高等院校工、管、理專業(yè)的一門重要基礎課程,成為用數學知識解決實際問題的一個強有力的工具。計算機技術和網絡技術的發(fā)展已經對人們的物質生活和文化生活產生了十分巨大的影響,其最顯著的功能就是進行高速度地海量計算,這種高速計算使得過去許多無法求解的問題成為可能,因此科學計算已成為與理論研究、科學實驗并列的科學研究三大手段之一。線性代數在其發(fā)展過程中所表現出的幾何觀念與代數方法之間的聯系,運用第二代數學模型的公理化表述方式,其巧妙的歸納綜合及嚴謹的邏輯推證等,對培養(yǎng)學生的邏輯推理能力、抽象思維能力、基本運算能力有著重要的作用。除此之外還應著重培養(yǎng)學生的科學計算能力,所謂科學計算能力就是利用現代計算工具(包括硬件和軟件)解決教學和科研中計算問題的能力。它包括掌握最新的科學計算軟件、建立適當的計算模型、采用正確的計算方法、實現高效的編程和運算、對計算結果作最佳的表述和圖解等多方面的綜合能力[1]。但是,線性代數的應用與科學計算是目前高校線性代數教學中的一個薄弱環(huán)節(jié)。如在傳統教材中,涉及線性代數應用的實例很少,涉及行列式和矩陣的階數和規(guī)模很低,其中的數字也比較簡單。然而,來源于實際問題的代數形式的數學模型中,情況則大不相同,行列式的階數可能很高,矩陣的規(guī)??赡芎艽螅渲械臄底忠部赡鼙容^復雜,在這種情況下僅用筆算幾乎是不可能實現的。因此在線性代數教學中引入Matlab計算軟件,通過實例教學與練習有利于培養(yǎng)和提高學生的科學計算能力。

2 在線性代數教學中Matlab的實踐應用

2.1用Matlab驗證行列式按行(列)展開定理

行列式按行(列)展開定理是行列式計算中的一個重要定理,這個定理也叫做行列式按行(列)展開法則,利用這一法則并結合行列式的性質,可簡化行列式的計算。在教學中由于此定理證明較為繁瑣,為降低難度很多教材沒有證明。為此可通過Matlab程序驗證這一定理。

n階行列式按行(列)展開公式為:

[k=1naikAjk=A,當i=j0,當i≠j]endprint

1)用Matlab程序構造一個8階方陣,按第5行展開:

[s=a51A51+a52A52+…+a58A58],驗證s是否與A的行列式相等。

啟動Matlab程序并打開編輯器編寫程序ex01.m:

%驗證行列式按行(列)展開公式

clc;clear all %清屏并清除所有變量

A=magic(8); %生成一個8階魔方方陣

D=det(A); %計算A的行列式

%矩陣A按行列式公式展開:s=a51*A51+a52*A52+……+a58*A58

s=0;

for i=1:8

E=A;

E(5,:)=[]; %刪去矩陣E第1行

E(:,i)=[]; %刪去矩陣E第i列,則E為矩陣A元素a5i的余子式

s=s+A(5,i)*(-1)^(5+i)*det(E); %求s=a51*A51+a52*A52+……+a58*A58

end

F=D-s %驗算D與s是否相等

在Matlab命令窗口中輸入:

>>ex01

F=

0

用Matlab隨機函數rand()構造一個8階矩陣,計算A的第3行元素與第5行元素對應的代數余子式乘積之和:[s=a31A51+a32A52+…+a38A58],驗證是否為0。

在Matlab的M文件編輯器中編寫程序ex02.m:

%對8階方陣A計算s=a31*A51+a32*A52+……+a38*A58

clc;clear

A=round(20*rand(8)); %構造8階隨機數方陣

s=0;

for i=1:8

T=A;

T(5,:)=[]; %刪去矩陣T第5行

T(:,i)=[]; %刪去矩陣T第i列,此時T為矩陣A元素a5i的余子式

s=s+A(3,i)*(-1)^(5+i)*det(T); %計算 s=a31*A51+a32*A52+……+a38*A58

end

fprintf('s=a31*A51+a32*A52+……+a38*A58\n');

s %驗證s是否為0

在Matlab命令窗口中輸入:

>>ex01

s=a31*A51+a32*A52+……+a38*A58

s =

0

2.2 Matlab符號運算在行列式、線性方程組中的應用

在數學運算中有數值運算與符號運算之分,進行數值運算時其表達式、矩陣變量中不允許有未定義的自由變量,為輔助數值計算,Matlab使用了符號工具箱來進行符號運算。符號工具箱用于處理符號表達式,因此可求解含有符號變量的方程組、微分和積分函數,以及進行符號矩陣運算。

2.2.1 求行列式[1-aa000-11-aa000-11-aa000-11-aa000-11-a]的值,并進行因式分解

在Matlab命令窗口中輸入以下命令:

>>clear all %清除各種變量

>>clc

>>syms a %定義a為符號變量

>>A=[1-a a 0 0 0;-1 1-a a 0 0;0 -1 1-a a 0;

0 0 -1 1-a a;0 0 0 -1 1-a];%給矩陣A賦值

>>D=det(A) %計算含符號變量矩陣A的行列式

D =a^4 - a^5 - a^3 + a^2 - a + 1

>> f=factor(D) %對多項式D進行因式分解

f =-(a - 1)*(a^2 - a + 1)*(a^2 + a + 1)

2.2.2 齊次線性方程組:[(1+k)x1+x2+x3+x4+x5=02x1+(2+k)x2+2x3+2x4+2x5=03x1+3x2+(3+k)x3+3x4+3x5=04x1+4x2+4x3+(4+k)x4+x5=05x1+5x2+5x3+5x4+(5+k)x5=0]

當[k]為何值時,方程組有非零解。并求出齊次線性方程組的通解。

在Matlab的命令窗口中輸入以下命令:

>>clc;clear

>>syms k %定義符號變量中k

>>A=[1+k 1 1 1 1;2 2+k 2 2 2;3 3 3+k 3 3;4 4 4 4+k 4; 5 5 5 5 5+k]; %輸入系數矩陣A

>>D=det(A); %求出矩陣A的行列式值D

>>factor(D) %對D進行因式分解

ans =

k^4*(k + 15)

從D的因式分解可看出當[k]=0或[k]=-15時齊次線性方程組有非零解。下面求方程組的基礎解系, 在Matlab的命令窗口中繼續(xù)輸入以下命令:

>> kk=solve(D) %求出方程D=0的解即k的值

kk =

-15

0

0

0

0

求當[k]=-15時,齊次線性方程組的基礎解系:

>> AA=subs(A,k,kk(1)); %把k值代入系數矩陣A中

>>null(AA) %求基礎解系

ans =

1/5

2/5

3/5

4/5

1

所以當[k=-15]時,方程組的基礎解系為[η=[1,2,3,4,5]t],其通解為[x=kη],[k]為任意常數。

同樣的方法可得,當[k=0]時,方程組的基礎解系為[η1=[-1,1,0,0,0]t],[η2=[-1,0,1,0,0]t],[η3=[-1,0,0,1,0]t],[η4=[-1,0,0,0,1]t],其通解為[x=k1η1+k2η2+k3η3+k4η4],其中[k1,…,k4]為任意常數。

3 結束語

文中結合線性代數中的行列式、線性方程組等知識點,通過Matlab在線性代數定理驗證、含符號變量高階行列、線性方程組教學中的應用,說明把Matlab引入到線性代數教學過程中,將線性代數理論、應用及Matlab有機結合,一方面可以幫助學生直觀地理解掌握知識點,另一方面可讓學生應用Matlab編程技術掌握科學計算方法,提高學生的科學計算能力。

參考文獻:

[1] 陳懷琛.線性代數要與科學計算結成好伙伴[J].大學數學,2010 (s1):28-33.

[2] 屠小明,馮元珍.Matlab軟件在線性代數教學的應用舉例[J].科技視界,2012(31):11-12.

[3] 楊威,高淑萍.線性代數機算與應用指導(Matlab版)[M].西安電子科技大學出版社,2009.4:20-21.

[4] 陳懷琛.大學理工科要把‘科學計算能力當作一個重要培養(yǎng)目標. 2005 年5 月在南京舉行的精品課程研討會上的發(fā)言.

[5] 陳世發(fā),薛德黔.MATLAB在高等數學教學中的應用[J].福建電腦,2006(10):214,162.

[6] 高智中,武潔,王洋軍.Matlab在線性代數教學中的幾點應用[J].衡水學院學報, 2010(1):92-93.endprint

1)用Matlab程序構造一個8階方陣,按第5行展開:

[s=a51A51+a52A52+…+a58A58],驗證s是否與A的行列式相等。

啟動Matlab程序并打開編輯器編寫程序ex01.m:

%驗證行列式按行(列)展開公式

clc;clear all %清屏并清除所有變量

A=magic(8); %生成一個8階魔方方陣

D=det(A); %計算A的行列式

%矩陣A按行列式公式展開:s=a51*A51+a52*A52+……+a58*A58

s=0;

for i=1:8

E=A;

E(5,:)=[]; %刪去矩陣E第1行

E(:,i)=[]; %刪去矩陣E第i列,則E為矩陣A元素a5i的余子式

s=s+A(5,i)*(-1)^(5+i)*det(E); %求s=a51*A51+a52*A52+……+a58*A58

end

F=D-s %驗算D與s是否相等

在Matlab命令窗口中輸入:

>>ex01

F=

0

用Matlab隨機函數rand()構造一個8階矩陣,計算A的第3行元素與第5行元素對應的代數余子式乘積之和:[s=a31A51+a32A52+…+a38A58],驗證是否為0。

在Matlab的M文件編輯器中編寫程序ex02.m:

%對8階方陣A計算s=a31*A51+a32*A52+……+a38*A58

clc;clear

A=round(20*rand(8)); %構造8階隨機數方陣

s=0;

for i=1:8

T=A;

T(5,:)=[]; %刪去矩陣T第5行

T(:,i)=[]; %刪去矩陣T第i列,此時T為矩陣A元素a5i的余子式

s=s+A(3,i)*(-1)^(5+i)*det(T); %計算 s=a31*A51+a32*A52+……+a38*A58

end

fprintf('s=a31*A51+a32*A52+……+a38*A58\n');

s %驗證s是否為0

在Matlab命令窗口中輸入:

>>ex01

s=a31*A51+a32*A52+……+a38*A58

s =

0

2.2 Matlab符號運算在行列式、線性方程組中的應用

在數學運算中有數值運算與符號運算之分,進行數值運算時其表達式、矩陣變量中不允許有未定義的自由變量,為輔助數值計算,Matlab使用了符號工具箱來進行符號運算。符號工具箱用于處理符號表達式,因此可求解含有符號變量的方程組、微分和積分函數,以及進行符號矩陣運算。

2.2.1 求行列式[1-aa000-11-aa000-11-aa000-11-aa000-11-a]的值,并進行因式分解

在Matlab命令窗口中輸入以下命令:

>>clear all %清除各種變量

>>clc

>>syms a %定義a為符號變量

>>A=[1-a a 0 0 0;-1 1-a a 0 0;0 -1 1-a a 0;

0 0 -1 1-a a;0 0 0 -1 1-a];%給矩陣A賦值

>>D=det(A) %計算含符號變量矩陣A的行列式

D =a^4 - a^5 - a^3 + a^2 - a + 1

>> f=factor(D) %對多項式D進行因式分解

f =-(a - 1)*(a^2 - a + 1)*(a^2 + a + 1)

2.2.2 齊次線性方程組:[(1+k)x1+x2+x3+x4+x5=02x1+(2+k)x2+2x3+2x4+2x5=03x1+3x2+(3+k)x3+3x4+3x5=04x1+4x2+4x3+(4+k)x4+x5=05x1+5x2+5x3+5x4+(5+k)x5=0]

當[k]為何值時,方程組有非零解。并求出齊次線性方程組的通解。

在Matlab的命令窗口中輸入以下命令:

>>clc;clear

>>syms k %定義符號變量中k

>>A=[1+k 1 1 1 1;2 2+k 2 2 2;3 3 3+k 3 3;4 4 4 4+k 4; 5 5 5 5 5+k]; %輸入系數矩陣A

>>D=det(A); %求出矩陣A的行列式值D

>>factor(D) %對D進行因式分解

ans =

k^4*(k + 15)

從D的因式分解可看出當[k]=0或[k]=-15時齊次線性方程組有非零解。下面求方程組的基礎解系, 在Matlab的命令窗口中繼續(xù)輸入以下命令:

>> kk=solve(D) %求出方程D=0的解即k的值

kk =

-15

0

0

0

0

求當[k]=-15時,齊次線性方程組的基礎解系:

>> AA=subs(A,k,kk(1)); %把k值代入系數矩陣A中

>>null(AA) %求基礎解系

ans =

1/5

2/5

3/5

4/5

1

所以當[k=-15]時,方程組的基礎解系為[η=[1,2,3,4,5]t],其通解為[x=kη],[k]為任意常數。

同樣的方法可得,當[k=0]時,方程組的基礎解系為[η1=[-1,1,0,0,0]t],[η2=[-1,0,1,0,0]t],[η3=[-1,0,0,1,0]t],[η4=[-1,0,0,0,1]t],其通解為[x=k1η1+k2η2+k3η3+k4η4],其中[k1,…,k4]為任意常數。

3 結束語

文中結合線性代數中的行列式、線性方程組等知識點,通過Matlab在線性代數定理驗證、含符號變量高階行列、線性方程組教學中的應用,說明把Matlab引入到線性代數教學過程中,將線性代數理論、應用及Matlab有機結合,一方面可以幫助學生直觀地理解掌握知識點,另一方面可讓學生應用Matlab編程技術掌握科學計算方法,提高學生的科學計算能力。

參考文獻:

[1] 陳懷琛.線性代數要與科學計算結成好伙伴[J].大學數學,2010 (s1):28-33.

[2] 屠小明,馮元珍.Matlab軟件在線性代數教學的應用舉例[J].科技視界,2012(31):11-12.

[3] 楊威,高淑萍.線性代數機算與應用指導(Matlab版)[M].西安電子科技大學出版社,2009.4:20-21.

[4] 陳懷琛.大學理工科要把‘科學計算能力當作一個重要培養(yǎng)目標. 2005 年5 月在南京舉行的精品課程研討會上的發(fā)言.

[5] 陳世發(fā),薛德黔.MATLAB在高等數學教學中的應用[J].福建電腦,2006(10):214,162.

[6] 高智中,武潔,王洋軍.Matlab在線性代數教學中的幾點應用[J].衡水學院學報, 2010(1):92-93.endprint

1)用Matlab程序構造一個8階方陣,按第5行展開:

[s=a51A51+a52A52+…+a58A58],驗證s是否與A的行列式相等。

啟動Matlab程序并打開編輯器編寫程序ex01.m:

%驗證行列式按行(列)展開公式

clc;clear all %清屏并清除所有變量

A=magic(8); %生成一個8階魔方方陣

D=det(A); %計算A的行列式

%矩陣A按行列式公式展開:s=a51*A51+a52*A52+……+a58*A58

s=0;

for i=1:8

E=A;

E(5,:)=[]; %刪去矩陣E第1行

E(:,i)=[]; %刪去矩陣E第i列,則E為矩陣A元素a5i的余子式

s=s+A(5,i)*(-1)^(5+i)*det(E); %求s=a51*A51+a52*A52+……+a58*A58

end

F=D-s %驗算D與s是否相等

在Matlab命令窗口中輸入:

>>ex01

F=

0

用Matlab隨機函數rand()構造一個8階矩陣,計算A的第3行元素與第5行元素對應的代數余子式乘積之和:[s=a31A51+a32A52+…+a38A58],驗證是否為0。

在Matlab的M文件編輯器中編寫程序ex02.m:

%對8階方陣A計算s=a31*A51+a32*A52+……+a38*A58

clc;clear

A=round(20*rand(8)); %構造8階隨機數方陣

s=0;

for i=1:8

T=A;

T(5,:)=[]; %刪去矩陣T第5行

T(:,i)=[]; %刪去矩陣T第i列,此時T為矩陣A元素a5i的余子式

s=s+A(3,i)*(-1)^(5+i)*det(T); %計算 s=a31*A51+a32*A52+……+a38*A58

end

fprintf('s=a31*A51+a32*A52+……+a38*A58\n');

s %驗證s是否為0

在Matlab命令窗口中輸入:

>>ex01

s=a31*A51+a32*A52+……+a38*A58

s =

0

2.2 Matlab符號運算在行列式、線性方程組中的應用

在數學運算中有數值運算與符號運算之分,進行數值運算時其表達式、矩陣變量中不允許有未定義的自由變量,為輔助數值計算,Matlab使用了符號工具箱來進行符號運算。符號工具箱用于處理符號表達式,因此可求解含有符號變量的方程組、微分和積分函數,以及進行符號矩陣運算。

2.2.1 求行列式[1-aa000-11-aa000-11-aa000-11-aa000-11-a]的值,并進行因式分解

在Matlab命令窗口中輸入以下命令:

>>clear all %清除各種變量

>>clc

>>syms a %定義a為符號變量

>>A=[1-a a 0 0 0;-1 1-a a 0 0;0 -1 1-a a 0;

0 0 -1 1-a a;0 0 0 -1 1-a];%給矩陣A賦值

>>D=det(A) %計算含符號變量矩陣A的行列式

D =a^4 - a^5 - a^3 + a^2 - a + 1

>> f=factor(D) %對多項式D進行因式分解

f =-(a - 1)*(a^2 - a + 1)*(a^2 + a + 1)

2.2.2 齊次線性方程組:[(1+k)x1+x2+x3+x4+x5=02x1+(2+k)x2+2x3+2x4+2x5=03x1+3x2+(3+k)x3+3x4+3x5=04x1+4x2+4x3+(4+k)x4+x5=05x1+5x2+5x3+5x4+(5+k)x5=0]

當[k]為何值時,方程組有非零解。并求出齊次線性方程組的通解。

在Matlab的命令窗口中輸入以下命令:

>>clc;clear

>>syms k %定義符號變量中k

>>A=[1+k 1 1 1 1;2 2+k 2 2 2;3 3 3+k 3 3;4 4 4 4+k 4; 5 5 5 5 5+k]; %輸入系數矩陣A

>>D=det(A); %求出矩陣A的行列式值D

>>factor(D) %對D進行因式分解

ans =

k^4*(k + 15)

從D的因式分解可看出當[k]=0或[k]=-15時齊次線性方程組有非零解。下面求方程組的基礎解系, 在Matlab的命令窗口中繼續(xù)輸入以下命令:

>> kk=solve(D) %求出方程D=0的解即k的值

kk =

-15

0

0

0

0

求當[k]=-15時,齊次線性方程組的基礎解系:

>> AA=subs(A,k,kk(1)); %把k值代入系數矩陣A中

>>null(AA) %求基礎解系

ans =

1/5

2/5

3/5

4/5

1

所以當[k=-15]時,方程組的基礎解系為[η=[1,2,3,4,5]t],其通解為[x=kη],[k]為任意常數。

同樣的方法可得,當[k=0]時,方程組的基礎解系為[η1=[-1,1,0,0,0]t],[η2=[-1,0,1,0,0]t],[η3=[-1,0,0,1,0]t],[η4=[-1,0,0,0,1]t],其通解為[x=k1η1+k2η2+k3η3+k4η4],其中[k1,…,k4]為任意常數。

3 結束語

文中結合線性代數中的行列式、線性方程組等知識點,通過Matlab在線性代數定理驗證、含符號變量高階行列、線性方程組教學中的應用,說明把Matlab引入到線性代數教學過程中,將線性代數理論、應用及Matlab有機結合,一方面可以幫助學生直觀地理解掌握知識點,另一方面可讓學生應用Matlab編程技術掌握科學計算方法,提高學生的科學計算能力。

參考文獻:

[1] 陳懷琛.線性代數要與科學計算結成好伙伴[J].大學數學,2010 (s1):28-33.

[2] 屠小明,馮元珍.Matlab軟件在線性代數教學的應用舉例[J].科技視界,2012(31):11-12.

[3] 楊威,高淑萍.線性代數機算與應用指導(Matlab版)[M].西安電子科技大學出版社,2009.4:20-21.

[4] 陳懷琛.大學理工科要把‘科學計算能力當作一個重要培養(yǎng)目標. 2005 年5 月在南京舉行的精品課程研討會上的發(fā)言.

[5] 陳世發(fā),薛德黔.MATLAB在高等數學教學中的應用[J].福建電腦,2006(10):214,162.

[6] 高智中,武潔,王洋軍.Matlab在線性代數教學中的幾點應用[J].衡水學院學報, 2010(1):92-93.endprint

猜你喜歡
線性代數實踐教學
翻轉課堂在獨立院校線性代數教學中的應用研究
在線性代數課程教學中引入MATLAB的簡單介紹
茶學專業(yè)校企合作實踐教學探索
《電氣工程畢業(yè)設計》 課程的教學設計
研究型學習在傳熱學實踐教學中的應用
思想政治理論課實踐教學研究述評
高職院校商務禮儀課程教學改革探索芻議
全州县| 正安县| 廊坊市| 临江市| 巴彦淖尔市| 鸡东县| 包头市| 治多县| 双鸭山市| 历史| 苏尼特左旗| 米易县| 江达县| 两当县| 翼城县| 连江县| 沅江市| 遂溪县| 绵竹市| 儋州市| 电白县| 松滋市| 新邵县| 芜湖县| 阿鲁科尔沁旗| 淮安市| 黄陵县| 海南省| 柘荣县| 武强县| 晋州市| 南靖县| 惠水县| 肇源县| 方城县| 阿拉尔市| 翁源县| 延庆县| 治多县| 老河口市| 襄城县|