⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exp3_1.m

📁 使用matlab软件编制的计算程序
💻 M
字号:
% exp3_1.m --- 解线性方程组左除命令‘\’的学习

% ----------  example1  -----------
% Ax = b (x,b是列向量),当A是可逆矩阵时 x = A\b 产生该方程组的解
% 其算法基于LU分解相当于列主元Gauss消去法
A = [ 1  5 -9
      0  6  4
      1  1  1];
b = [-16 24 6]';
x1 = A\b
% [注] 该命令适用求解中小型稠密线性方程,而且性态是较好的(非病态),是最常用的命令
%      对于大型矩阵或病态的还有其它一些命令pcg,gmres,qmr等

% ----------  example2  -----------
% Ax = b ,当A是列满秩矩阵时 x = A\b 产生该方程组唯一的最小二乘解
% 其算法基于解法方程组 A'*A x = A'*b (见P125-126, 例11)
A = [2 1 1; 1 -2 -3; 3 -4 1; 1 3 -2];
b = [-4 5 3 -2]';
x2 = A\b

% -----------  example3  ----------
% 解矩阵方程AX = B ,当A可逆或列满秩
A = [ 1  3
      1  4];
B = [ 1  2
      3  4];
X = A\B



% ******** 你的实验 ********
% 【实验一】 自学与矩阵计算有关的一些常用函数
% det(A)    ---  求方阵A的行列式
% inv(A)    ---  求方阵的逆
% rank(A)   ---  求矩阵A的(数值)秩
% rref(A)   ---  化矩阵A为最简阶梯形
% norm(A,p) ---  求矩阵A的p-范数
% cond(A,p) ---  求矩阵A的p-范数的条件数
% eig(A)    ---  求方阵A的特征值

% 【实验二】 x = A\b 与 x = inv(A)*b 在耗时方面的区别
% 解方程组 Ax = b 时尽量不要使用 x = inv(A)*b,而要使用 x  = A\b
% 下面是二者耗时方面的区别实验(把下面程序拷贝为新的M-文件,有些命令可不关心其含义)

% rand('state',0);
% A = gallery('randsvd',200,2e13,2); % 产生条件数为2e13的200阶的随机矩阵
% x = ones(200,1);                   % 设精确解为[1,1,...,1]'
% b = A*x; 
% format long                        % 用15位小数显示
% 
% % 求逆法
% tic                      % 启动计时器
% x1 = inv(A)*b;
% time1 = toc              % 关闭计时器并显示耗时
% error1 = norm(x-x1,inf)  % 计算最大误差
% 
% % 左除法
% tic
% x2 = A\b;
% time2 = toc 
% error2 = norm(x-x2,inf)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -