matlab 阶梯形矩阵,求化矩阵为阶梯型矩阵的代码(不是行最简函数rref)
下面是matlab中rref函数的代码,求将其改为化矩阵为行阶梯型矩阵的函数,
把一个矩阵化为行最简型应该是先从上至下化为行阶梯,再从下往上化为行最简!
function [A,jb] = rref(A,tol)
%RREF Reduced row echelon form.
% R = RREF(A) produces the reduced row echelon form of A.
%
% [R,jb] = RREF(A) also returns a vector, jb, so that:
% r = length(jb) is this algorithm's idea of the rank of A,
% x(jb) are the bound variables in a linear system, Ax = b,
% A(:,jb) is a basis for the range of A,
% R(1:r,jb) is the r-by-r identity matrix.
%
% [R,jb] = RREF(A,TOL) uses the given tolerance in the rank tests.
%
% Roundoff errors may cause this algorithm to compute a different
% value for the rank than RANK, ORTH and NULL.
%
% Class support for input A:
% float: double, single
%
% See also RANK, ORTH, NULL, QR, SVD.
% Copyright 1984-2005 The MathWorks, Inc.
[m,n] = size(A);
% Does it appear that elements of A are ratios of small integers?
[num, den] = rat(A);
rats = isequal(A,num./den);
% Compute the default tolerance if none was provided.
if (nargin < 2), tol = max(m,n)*eps(class(A))*norm(A,'inf'); end
% Loop over the entire matrix.
i = 1;
j = 1;
jb = [];
while (i <= m) && (j <= n)
% Find value and index of largest element in the remainder of column j.
[p,k] = max(abs(A(i:m,j))); k = k+i-1;
if (p <= tol)
% The column is negligible, zero it out.
A(i:m,j) = zeros(m-i+1,1);
j = j + 1;
else
% Remember column index
jb = [jb j];
% Swap i-th and k-th rows.
A([i k],j:n) = A([k i],j:n);
% Divide the pivot row by the pivot element.
A(i,j:n) = A(i,j:n)/A(i,j);
% Subtract multiples of the pivot row from all the other rows.
for k = [1:i-1 i+1:m]
A(k,j:n) = A(k,j:n) - A(k,j)*A(i,j:n);
end
i = i + 1;
j = j + 1;
end
end
% Return "rational" numbers if appropriate.
if rats
[num,den] = rat(A);
A=num./den;
end
matlab 阶梯形矩阵,求化矩阵为阶梯型矩阵的代码(不是行最简函数rref)相关推荐
- 【运筹学】线性规划数学模型 ( 知识点回顾 | 可行解 | 最优解 | 阶梯型矩阵 | 阶梯型矩阵向量 | 基 | 基向量 | 基变量 | 非基变量 )
文章目录 一.知识点回顾 1.线性规划三要素 2.线性规划一般形式 3.线性规划标准形式 二.线性规划解.可行解.最优解 三.阶梯型矩阵 四.阶梯型矩阵向量 五.基.基向量.基变量.非基变量 一.知识 ...
- C语言学习之求一个3X3的整型矩阵对角线元素之和。
求一个3X3的整型矩阵对角线元素之和. int main(){int i,j,sum1=0,sum2=0; //定义 int a[3][3]; //定义数组 //给数组元素赋值 for(i=0;i&l ...
- C语言学习之求一个3×3的整型矩阵对角线元素之和
求一个3×3的整型矩阵对角线元素之和 一条对角线 #include <stdio.h> void main(){int a[3][3],i,j,s,s2;printf("请输入9 ...
- 【机器学习中的矩阵求导】(七)矩阵向量化复习
学习总结 (1)矩阵乘法. Vec(ABC)=(C⊤⊗A)Vec(B)\operatorname{Vec}(\operatorname{ABC})=\left(\mathbf{C}^{\top} ...
- java 矩阵求秩_线性代数精华3——矩阵的初等变换与矩阵的秩
矩阵的初等变换这个概念可能在很多人听来有些陌生,但其实我们早在初中的解多元方程组的时候就用过它.只不过在课本当中,这种方法叫做消元法.我们先来看一个课本里的例子: 假设我们要解这个方程,怎么做呢? 首 ...
- 行阶梯型矩阵,行最简形矩阵,标准形矩阵
行阶梯形矩阵: 行最简形矩阵: 标准形矩阵:
- c语言矩阵求伪逆算法pinv,pinv--求矩阵的伪逆矩阵
pinv--求矩阵的伪逆矩阵 [功能简介]用于求矩阵的伪逆矩阵. [语法格式] 1.B=pinv(A) 函数返回矩阵A的伪逆矩阵.如果矩阵A是可逆(非奇异)的,那么pinv(A)与inv(A)的结果是 ...
- (线性代数笔记)2.阶梯型矩阵
1.阶梯形矩阵的定义 矩阵的主元 2.任意矩阵经过有限次初等行变换化为阶梯形 这里C是由B通过初等行变化得到的,C也是A的阶梯形 3.矩阵的秩 例题(矩阵通过初等行变换转化为阶梯形)
- RREF 最简行阶梯型矩阵
最简行阶梯矩阵 最简行阶梯矩阵-百度百科 Python numpy + sympy import numpy as np from sympy import Matrix A = np.array([ ...
- C:求一个3x3的整型矩阵对角线元素之和
分析 利用二维数组储存矩阵:注意到主对角线i=j,次对角线i+j=2. #include <stdio.h> int main() {int a[3][3] = {0};int i, s1 ...
最新文章
- 病症:arm启动后应用程序界面显示…
- CodeForces - 224C. Bracket Sequence (栈模拟)简单做法
- matlab实现均衡变换,MATLAB如何实现图像增强灰度变换直方图均衡匹配
- 深入探究Java中hashCode()和equals()的关系
- Android Uri to Path
- 转:Ajax调用Webservice和后台方法
- 【课本】【No.3】随机向量定义、联合分布函数、边缘分布、统计特征的分布函数的差分,独立性、离散型条件分布列,连续型分布函数与密度函数、随机向量的函数分布
- java-第十一章-类的无参方法-模拟ATM机进行账户余额查询
- vue3.0 音频插件(vue-aplayer)
- 记录一下unity3d资源加载Resources.Load资源加载的坑
- ffmpeg实现硬件转码(使用FFmpeg调用NVIDIA GPU实现H265转码H264)
- 【一文快速理解23种设计模式】
- 关于UWP中下载文件夹操作问题
- 太阳能基站光照跟随逐日PLC控制实训设备QY-PV26
- excel vba如何在不打开的情况下获取.pdf文件的打印页码数
- SSL证书的根证书和中间根证书的区别
- 第三方软件测试 CNAS软件测试报告
- RAID技术规范简介 RAID0 RAID1 RAID2 RAID3 RAID4 RAID5 RAID6 RAID7
- 笔记本wife DNS服务器未响应,为什么手机已经连接上wifi还是上不了网?
- 洛谷 P3258 松鼠的新家 题解
热门文章
- vue的介绍-基本语法
- 【软考信息系统项目管理师】必背重点之信息化和信息系统
- 打印机共享无法访问该计算机,共享打印机拒绝访问怎么办详细解决方案
- 信捷用c语言编写梯形图,PLC一键启停编程梯形图实例
- LaTex的箭头符号及命令
- 时区是怎么划分的?世界各时区的时间如何统一表达?GMT、UTC、UNIX有什么区别?
- 搭建自己的wiki知识管理系统
- python 今日头条视频自动上传_抖音视频怎么上传到今日头条?这个软件可一键操作很方便...
- redis持久化(persistent)
- 献给正在纠结的朋友——转产品还是转测试