基於matlab的數學實驗 線代中的若干問題

2022-12-29 09:36:05 字數 4906 閱讀 8093

基於matlab的數學實驗

線性代數中的若干問題(一)

1.1 引言

線性代數的理論及其方法是科學研究和工程應用中最常用的數學重要工具之一,事實上,線性代數的理論及其方法不僅在涉及線性問題的場合,而且在處理非線性問題時也起著重要的作用,因此,掌握線性代數的基本理論並具有正確使用其方法的能力,已經成為現代科學技術和工程實踐對專業技術人員素質的基本要求之一。

1.2 病態矩陣與線性方程組求解

在許多問題的研究和解決的過程中,都會涉及到線性方程組的求解。然而,線性方程組的求解本身所涉及的問題,並不象教科書中所表現的那樣的完美和簡明,如線性方程組:

1.1)

其中,,當可逆時,我們知道方程組(1.1)存在唯一解:

1.2)

並且我們也有了計算的公式:

1.3)

然而,當我們使用上述公式具體計算時往往回遇到下面的問題:

1、矩陣的元素是無理數──這將導致無法得到精確解;

2、矩陣的階數很大,如等於幾

十、幾百甚至更大──計算量非常大,因此要借助於計算機的幫助,然而計算機給我們帶來求解希望的同時可能也帶來了截斷性誤差;

3、矩陣是病態的,即的條件數較大──在1,2存在的情況下,如果不「謹慎」求解,的病態性將使求得的結果嚴重失真;

上述的問題1,2容易理解,下面我們重點討論問題3。

1.3 線性方程組的經典求解方法(高斯消去法)的不足

1) 引例

考慮如下(梯形)線性方程組:

高斯消去法的求解思路:把一般的線性方程組(1)化成(上或下)梯形的形式。

2)高斯消去法——示例

考慮如下線性方程組:

1) 第乙個方程的兩端乘加到第二個方程的兩端,第乙個方程的兩端乘

-1加到第三個方程的兩端,得

2) 第二個方程的兩端乘加到第三個方程的兩端,得

3)從上述方程組的第三個方程依此求解,得

3)高斯消去法的不足及其改進——高斯(全、列)主元素消去法

在上例中,由於建模、計算等原因,係數2.001而產生0.0005的誤差,實際求解的方程組為

高斯列主元素消去法就是在消元的每一步選取(列)主元素—一列中絕對值最大的元取做主元素,高斯列主元素消去法是數值穩定的方法。

列主元素消去法的基本思想:在每輪消元之前,選列主元素(絕對值最大的元素),使乘數.

列主元素消去法的步驟:設已經完成第1步到第步的按列選主元、交換兩行、消元計算,得到矩陣

.第步計算如下:對於,

(1) 選列主元素,即確定使;

(2) 如果,則方程組解不唯一,或者接近奇異矩陣,停止運算;

(3) 如果,則交換第行與第行元素;

(4) 消元計算:

(5) 回代計算:

完全主元素消去法即是每次選主元時,依次按行、列選取絕對值最大的元素作為主元素,然後交換兩行、兩列,再進行消元計算.

完全主元素消去法的步驟:設已經完成第1步到第步的選主元、交換行和列、消元計算,得到矩陣

.第步計算選主元素的範圍為,即確定使.

第步計算如下:對於,

(1) 選主元素,即確定使;

(2) 如果,則方程組解不唯一,或者接近奇異矩陣,停止運算;

(3) 如果,則交換第行與第行元素;如果,則交換第列與第列元素;

(4) 消元計算:

(5) 回代求解.

【注】 完全主元消去法是解低階稠密矩陣方程組的有效方法,但完全主元消去法解方程組,在選主元素時要化費較多的計算機時間,行主元消去法與列主元消去法運算量大體相同,實際計算時,用列主元消去法即可滿足一定的精度要求.

對同一數值問題,用不同的計算方法,所得結果的精度大不一樣.對於乙個演算法來說,如果計算過程中捨入誤差能得到控制,對計算結果影響較小,則稱此演算法是數值穩定的;否則,如果計算過程中捨入誤差增長迅速,計算結果受捨入誤差影響較大,則稱此演算法為數值不穩定的.因此,我們解數值問題時,應選擇和使用數值穩定的演算法,否則如果使用數值不穩定的演算法,就可能導致計算失敗.

例用高斯列主元消去法解方程組解.

所以,方程組的解為.

4)高斯列主元素消去法的matlab實現:,意為.

例 a= [-0.3999 0.6686 -1.6041 0.5287 -1.0106

0.6900 1.1908 0.2573 0.2193 0.6145

0.8156 -1.2025 -1.0565 -0.9219 0.5077

0.7119 -0.0198 1.4151 -2.1707 1.6924

1.2902 -0.1567 -0.8051 -0.0592 0.5913];

b=randn(5,1);

%a=input(' a = ')

%b=ones(length(a(1,:)),1);

x=a\b

5)lu分解 (lu factorization)(高斯消去法、doolittle分解)

高斯消去法的消元過程,從代數運算的角度看就是用乙個下三角矩陣左乘方程組的係數矩陣a,且乘積的結果為上三角矩陣,即

1.4)

可通過直接用a元素計算矩陣a的三角分解矩陣l和u.這種直接計算a的三角分解的方法有實用上的好處.下面利用矩陣乘法規則來確定三角矩陣l和u.

.第一步:利用a的第一行、第一列元素確定u的第一行、l的第一列元素.由矩陣乘法,,,

得到1.5)

設已經計算出u的第1至r -1行元素,l的第1至r -1列元素,現在要計算u的第r行元素及l的第r列元素.

第r步:利用a的第r行、第r列剩下的元素確定u的第r行、l的第r列元素.由矩陣乘法,有

,得u的第r行元素為

1.6)由,

得. (1.7)

例用lu分解法求解方程組

.解對係數矩陣a進行lu分解,

.由,有.

,.因此

.解方程組,得.

解方程組,得.

6) lu 分解的matlab實現:或

例 a=rand(5);

[l,u,p]=lu(a)

a=rand(5);

[l,u,p]=lu(a)

l=p\l

為了對線性方程組的直接法作出誤差分析,為了討論方程組迭代法的收斂性,需要對向量和矩陣的大小進行度量,進而引入了

1.4  範數━用於度量「量」的大小的概念

引言實數的絕對值:是數軸上的點到原點的距離;

複數的模:是平面上的點到原點的距離;

還有其他刻畫複數大小的方法(準則):如

1);2)

向量的內積、範數及維空間距離的度量

令是一數域,是上的向量空間,如果函式有如下性質:

1、共軛對稱性:,;

2、非負性:,,;

3、線性性:,,

;則稱是上的乙個向量內積(inner product),向量空間上的向量內積通常用符號表示,定義了內積的向量空間稱為內積空間(inner product space)。記做表示。

例  ,,,容易驗證函式

8)定義了上的乙個內積。

令是一數域,是上的向量空間,如果函式有如下性質:

1、非負性:,,;

2、齊次性:,,;

3、三角不等式:,;

則稱是上的乙個向量範數(norm),向量空間上的範數通常用符號表示。定義了範數的向量空間稱為賦範空間(normed space)。記做表示。

例  ,,,容易驗證函式

9)定義了上的乙個範數,這樣定義的範數稱為由內積(1.1)誘導的範數。

例上常用的向量範數:

,1、1—範數:;

2、2—範數:;

3、—範數:;

令是一數域,是上的向量空間,如果實值函式有如下性質:

1、對稱性:,;

2、非負性:,,

3、三角不等式:, ;

則稱是上的乙個距離(函式)(distance function)或度量(metric),定義了度量的向量空間稱為度量空間(metric space),記做表示。

例上常用的(由範數誘導的)度量: ,

1、1—範數誘導的度量:;

2、2—範數誘導的度量:;

3、—範數誘導的度量:;

矩陣的範數

矩陣是線性對映(當時為線性變換)的一種表現形式。因此,除了可以把矩陣看做向量而定義其範數外,更為基本、更為重要的是表徵其線性對映的運算元範數(operator norm),以的情況為例:

10)其中(1.10)右端的範數是賦範空間中向量的範數,由矩陣運算元範數的定義(1.10)容易證明(對映像大小的估計)不等式:

11)稱滿足不等式(1.11)的矩陣範數是與對應的向量範數相容的。

例常用的矩陣範數:

1、1—範數(列範數):

;2、2—範數(譜範數):;

3、—範數(行範數):

;上述三種範數是如下定義的矩陣—範數的特例:

4、由向量的—範數:,,定義:

12)5、f—範數(frobenius):;

例設,求範數.

解:..

.由於,所以,因此.

向量和矩陣範數的matlab實現

在matlab中,norm( )函式求向量與矩陣的範數,其命令格式為norm(x,p).

當x為向量或矩陣時,norm(x,p)表示向量或矩陣x的p範數,例如,norm(x,1)表示x的1範數,norm(x,2)表示x的2範數,norm(x,inf)表示x的範數.對於矩陣x,norm(x,'fro')表示x的f範數.

1.5 矩陣的條件數與直接法的誤差分析

解線性方程組的直接法產生誤差的主要原因:1)不同的演算法及捨入誤差的影響;2)方程組本身固有的問題(病態或良態)本節我們將分析方程組的狀態並估計演算法的誤差,即原始資料擾動對解的影響.

考慮階線性方程組,其中為非奇異矩陣.

由於(或)的數值是測量得到的,或者是計算的結果,在第一種情況下(或)常帶有某些觀測誤差,在後一種情況(或)又包含有捨入誤差.因此我們處理的實際矩陣是(或),下面我們來研究資料(或)的微小誤差對解的影響.首先考慮乙個例子.

數學實驗報告 基於matlab

西安交通大學 實驗報告 課程 高數實驗 班級 自動化32 姓名 張文傑 學號 2130504049 日期 2014年4月20日 1 計算值其它公式 請按照上述公式分別程式設計計算並與 1 就精度與疊加次數進行比較,能得出什麼結論?解 1 按照以下的程式得到n取不同的值 1 式計算的的近似值 form...

實驗二基於Matlab的微分方程數值解

實驗二基於matlab的微分方程數值解 程式設計與除錯 2學時 一 實驗目的 掌握尤拉法 四階龍格庫塔法的程式編制方法。二 實驗方法及預習內容 對微分方程描述的控制系統,利用尤拉法 二階龍格 庫塔法 四階龍格 庫塔法分別編寫m檔案,進行數值計算和作圖。三 實驗內容 1 分別用尤拉法 二階龍格 庫塔法...

MATLAB數學實驗報告

matlab 數學實驗報告 一 實驗目的 通過以下四組實驗,熟悉matlab的程式設計技巧,學會運用matlab的一些主要功能 命令,通過建立數學模型解決理論或實際問題。了解諸如分岔 混沌等概念 學會建立malthu模型和logistic模型 懂得最小二乘法 線性規劃等基本思想。二 實驗內容 2.1...