用matlab写出一份代码,已知矩阵A=[1 2 34:5 6 7 8:-4 -5 109:8 -9 13-151.求A的一范数,二范数,无穷范数,一范条件数,二范条件数,无穷范条件数。要求不使用命令norm
时间: 2023-03-29 10:00:52 浏览: 120
您好,以下是您要求的 Matlab 代码:
A = [1 2 3; 4 5 6; 7 8 -4; -5 10 9; 8 -9 13; -15 1];
% 一范数
norm1 = max(sum(abs(A)));
% 二范数
norm2 = sqrt(max(eig(A'*A)));
% 无穷范数
normInf = max(sum(abs(A'),2));
% 一范条件数
cond1 = max(sum(abs(inv(A)))*sum(abs(A)));
% 二范条件数
cond2 = max(svd(A))*max(svd(inv(A)));
% 无穷范条件数
condInf = max(sum(abs(inv(A')))*sum(abs(A'),2));
请注意,这些计算结果是在不使用 norm 命令的情况下得出的。
相关问题
熵权法matlab代码求A = [1 2 3; 4 5 6; 7 8 9];权重
以下是熵权法的MATLAB代码实现,用于求解矩阵 A = [1 2 3; 4 5 6; 7 8 9] 的权重:
```matlab
% 假设有3个指标,数据存储在矩阵A中
A = [1 2 3; 4 5 6; 7 8 9];
% 对每个指标进行标准化处理
[m, n] = size(A); % m表示数据个数,n表示指标个数
B = zeros(m, n); % 存储标准化后的数据
for i = 1:n
B(:, i) = (A(:, i) - min(A(:, i))) ./ (max(A(:, i)) - min(A(:, i)));
end
% 计算每个指标的熵值
E = zeros(1, n); % 存储每个指标的熵值
for i = 1:n
p = B(:, i) / sum(B(:, i)); % 计算每个数据的概率
E(i) = -sum(p .* log2(p)); % 计算熵值
end
% 计算每个指标的权重
w = (1 - E) / sum(1 - E);
% 输出结果
disp("每个指标的权重为:");
disp(w);
```
其中,矩阵A存储原始数据,B存储标准化后的数据,E存储每个指标的熵值,w存储每个指标的权重。需要注意的是,熵值的计算中使用了log2函数,因此在计算之前需要确保数据都是正数。运行以上代码,即可得到矩阵 A 的各个指标的权重。
用matlab写出代码将矩阵A=[1 -1 0;-1 1 0; 0 0 1]化为对角形
可以使用matlab中的特征值分解函数,将矩阵A分解为特征向量矩阵V和特征值矩阵D的乘积,即 A=VDV^-1,其中D为对角矩阵。代码如下:
A = [1 -1 0; -1 1 0; 0 0 1];
[V,D] = eig(A);
disp('对角矩阵D为:');
disp(D);
disp('特征向量矩阵V为:');
disp(V);