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