MATLAB如何进行矩阵计算(详细代码+解读+彻底说明)
进行范数分析——使用norm函数什么是范数根据线性代数的知识,某个向量 x=(x1,x2,……,xn)\textbf{x}=(x_1, x_2,……,x_n )x=(x1,x2,……,xn),其对应的p级范数为∣∣x∣∣p=(∑i=1n∣xi∣p)1/p||x||_p = (\sum_{i=1}^{n} |x_i|^{p})^{1/p}∣∣x∣∣p=(∑i=1n∣xi∣p)1/p, 并
·
进行范数分析——使用norm函数
- 什么是范数
根据线性代数的知识,某个向量 x=(x1,x2,……,xn)\textbf{x}=(x_1, x_2, ……,x_n )x=(x1,x2,……,xn),其对应的p级范数为∣∣x∣∣p=(∑i=1n∣xi∣p)1/p||x||_p = (\sum_{i=1}^{n} |x_i|^{p})^{1/p}∣∣x∣∣p=(∑i=1n∣xi∣p)1/p, 并且有
∣∣A∣∣∞=max1≤i≤n∣xi∣||A||_{\infty} = \max_{1 \leq i \leq n} |x_i|∣∣A∣∣∞=1≤i≤nmax∣xi∣
∣∣A∣∣−∞=min1≤i≤n∣xi∣||A||_{-\infty} = \min_{1 \leq i \leq n} |x_i| ∣∣A∣∣−∞=1≤i≤nmin∣xi∣
矩阵范数是基于向量范数的,具体表达式为:
∣∣A∣∣=max∀≠0∣∣Ax∣∣∣∣x∣∣ ||\textbf A||=\max_{\forall \not = 0} \frac{||\textbf A x||}{||x||} ∣∣A∣∣=∀=0max∣∣x∣∣∣∣Ax∣∣
在实际应用中,常用的1阶和2阶以及∞\infty∞阶范数,定义如下:∣∣A∣∣1=max1≤i≤n∑i=1n∣aij∣||\textbf A||_1 =\max_{1 \leq i \leq n} \sum_{i=1}^{n} |a_{ij}|∣∣A∣∣1=1≤i≤nmaxi=1∑n∣aij∣ ∣∣A∣∣2=Smax(ATA)||\textbf A||_2 = \sqrt{S_{max} (A^{T}A)}∣∣A∣∣2=Smax(ATA) ∣∣A∣∣∞=max1≤i≤n∑j=1n∣aij∣||\textbf A||_{\infty} = \max_{1 \leq i \leq n} \sum_{j=1}^{n} |a_{ij}| ∣∣A∣∣∞=1≤i≤nmaxj=1∑n∣aij∣
其中Smax(ATA)S_{max} (A^{T}A)Smax(ATA)表示的是矩阵A的最大奇异值的平方。以后的文章再说这个怎么求。 - 求解向量范数和矩阵范数的命令是什么?
n=norm(A)n=norm(A)n=norm(A), 计算向量或者矩阵的2阶范数。
n=norm(A,p)n=norm(A,p)n=norm(A,p), 计算向量或者矩阵的p阶范数。
其中,当求的是无穷阶范数时,可以将p设置为inf或者-inf. - 有范数运算的例子吗?
clc;
x = [1:6];% 输入向量
y = x.^2; % 计算平方
N2 = sqrt(sum(y)); % 使用定义求解2阶范数
Ninf = max(abs(x)); % 使用定义求解正无穷阶范数
Nvinf = min(abs(x)); % 使用定义求解负无穷阶范数
n2 = norm(x); % 使用函数求解2阶范数
ninf = norm(x,inf); % 使用函数求解正无穷阶范数
nvinf = norm(x,-inf); % 使用函数求解正无穷阶范数
disp('The method of definition:') % disp函数:可以直接将要显示的字符放入括号中,进行表达。
fprintf('The 2-norm is %6.4f\n', N2)
fprintf('The inf-norm is %6.4f\n', Ninf)
fprintf('The misusinf-norm is %6.4f\n', Nvinf)
fprintf('\n//----------------------------------------//\n\n')
fprintf('The 2-norm is %6.4f\n', n2)
fprintf('The inf-norm is %6.4f\n', ninf)
fprintf('The misusinf-norm is %6.4f\n', nvinf)
标题
更多推荐



所有评论(0)