山東大學數值計算實驗三(matlab)
阿新 • • 發佈:2019-02-14
1、Computer Problems P101 2.2
計算向量b的1範數、2範數、無窮範數。
計算A矩陣的1範數、2範數、無窮範數、條件數、F-範數。
(1)直接使用軟體環境提供的函式計算
用教材上定義程式設計計算
程式碼:
A = [2 4 -2; 4 9 -3; -2 -1 7];
b = [2 8 10]';
%利用提供的函式計算向量b的1範數、2範數、無窮範數。
b1 = norm(b,1); %1-範數
b2 = norm(b,2) ; %2-範數
b3 = norm(b,inf); %無窮-範數
fprintf('利用matlab函式計算所得結果(b1:1-範數 b2:2-範數 b3:無窮範數):' );
b1
b2
b3
%利用定義計算向量b的1範數、2範數、無窮範數。
b11 = sum(abs(b)); %1-範數
b22 = sqrt(sum(b.^2)); %2-範數
b33 = max(abs(b)); %無窮-範數
fprintf('利用定義計算向量b所得結果(b11:1-範數 b22:2-範數 b33:無窮範數):');
b11
b22
b33
%利用提供的函式計算A矩陣的1範數、2範數、無窮範數、條件數、F-範數。
a1 = norm(A,1); %1-範數
a2 = norm(A); %2-範數
a3 = norm(A,inf ) ; %無窮-範數
a4 = norm(A,'fro'); %F-範數
a5 = cond(A); %預設為2-範數下的條件數
fprintf('利用matlab函式計算矩陣A所得結果(a1:1-範數 a2:2-範數 a3:無窮範數 a4:F-範數 a5:條件數):');
a1
a2
a3
a4
a5
%利用定義計算A矩陣的1範數、2範數、無窮範數、條件數、F-範數。
%1-範數,定義:列和範數,即所有矩陣列向量絕對值之和的最大值
a11 = max(sum(abs(A))) ;
%2-範數 定義:譜範數,即A'A矩陣的最大特徵值的開平方。(A'表示矩陣A的轉置)
a22 = sqrt(max(eig(A'*A))) ;
%無窮-範數 定義:行和範數,即所有矩陣行向量絕對值之和的最大值
a33 = max(sum(abs(A),2)) ;
%F-範數 定義:Frobenius範數,即所有矩陣元素絕對值的平方和再開平方
a44 = sqrt(sum(sum(abs(A).^2))) ;
%預設為2-範數下的條件數 定義:用矩陣及其逆矩陣的範數的乘積表示矩陣的條件數,
%由於矩陣範數的定義不同,因而其條件數也不同,但是由於矩陣範數的等價性,故在不同範數下的條件數也是等價的,一般取2-範數
a55 = norm(A)*norm(inv(A)) ;
fprintf('利用定義計算矩陣A所得結果(a11:1-範數 a22:2-範數 a33:無窮範數 a44:F-範數 a55:條件數):');
a11
a22
a33
a44
a55