1. 程式人生 > >山東大學數值計算實驗三(matlab)

山東大學數值計算實驗三(matlab)

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