当前位置: 首页 > news >正文

为公司做网站适合两个人运动前看的电影

为公司做网站,适合两个人运动前看的电影,wordpress修改字体插件,免费建立手机网站QR分解 给定一个mn的矩阵A#xff0c;其中m≥n#xff0c;即矩阵A是高矩阵或者是方阵#xff0c;QR分解将矩阵A分解为两个矩阵Q和R的乘积#xff0c;其中矩阵Q是一个mn的各列正交的矩阵#xff0c;即QTQI#xff0c;矩阵R是一个nn的上三角矩阵#xff0c;其对角线元素为…QR分解 给定一个m×n的矩阵A其中m≥n即矩阵A是高矩阵或者是方阵QR分解将矩阵A分解为两个矩阵Q和R的乘积其中矩阵Q是一个m×n的各列正交的矩阵即QTQI矩阵R是一个n×n的上三角矩阵其对角线元素为正。 如果矩阵A是方阵且各列线性无关那么Q是一个正交矩阵即QTQQQTI。 QR分解有多种算法实现包括Gram-Schmidt正交化方法、Householder变换方法和Givens旋转方法等下面我们介绍Gram-Schmidt正交化方法和Householder变换方法并在MATLAB平台上使用这两种算法来实现QR分解。 Gram-Schmidt算法 对于给定的n维向量a1a2……anGram-Schmidt算法可以解决将其标准正交化的问题即将一个线性无关的向量组转化为一个正交向量组使得每个向量都与前面的向量正交垂直并且可以检验a1a2……an是否是线性相关。 Gram-Schmidt算法的步骤如下 初始化n维向量q1q2……qn其中q1a1/||a1||2。对于每个向量aii2n进行正交化处理qi ai-( q1Tai)q1-…-( qi-1Tai)qi-1。如果qi0说明ai是a1a2……ai-1的一个线性组合可以结束算法了。否则将qi进行单位化qiqi/||qi||2。 如果步骤③没有结束那么说明a1a2……an是线性无关的而且得到了一个正交向量组q1q2……qn。 Gram-Schmidt算法实现的QR分解 对于给定矩阵A其列向量线性无关Gram-Schmidt算法实现的QR分解步骤如下 对列向量a1a2……an按照Gram-Schmidt方法进行正交化。对上一步得到的正交化向量组进行单位化得到各列正交的矩阵Q。根据AQRQTQI→RQTA得到上三角矩阵R MATLAB验证Gram-Schmidt算法实现QR分解稳定性 通过直观的方法来观察到Gram-Schmidt QR分解的正交性偏差理论上通过Gram-Schmidt算法后可以得到列向量线性无关的各列正交的矩阵Q即QTQI我们可以直接计算QTQ看看计算结果与单位矩阵I的差距 左图是QTQ的计算结果有图是单位矩阵I可见由于浮点数存储的舍入误差随着k增大积累的误差越大矩阵Q逐渐失去正交性 clc,clear; load MatrixA.mat; [m,n]size(A); Qzeros(m,n); Rzeros(n,n); %% Gram-Schmidt QR分解 for k1:nR(1:k-1,k)Q(:,1:k-1)*A(:,k); %求出R(1,K) - R(K-1,K)vA(:,k)-Q(:,1:k-1)*R(1:k-1,k); %求出正交化向量qR(k,k)norm(v); %求出RK,KQ(:,k)v/R(k,k); %单位化向量q end %% 正交性偏差 figure(1); E zeros(1,n); for k2:nmax 0;for i1:k-1temp abs(Q(:,i) * Q(:,k));if temp maxmax temp;endendE(1,k)max; end plot(E) %% 比较QTQ和I QTQQ*Q; figure(2); for i1:nfor j1:nscatter3(i,j,QTQ(i,j),red);hold on;end end zlim([0,1]); Ieye(n); figure(3); for i1:nfor j1:nscatter3(i,j,I(i,j),red);hold on;end end zlim([0,1]); Householder变换 Householder变换是一种镜面反射变换householder变换矩阵为H I - 2wwT如何理解这个变换矩阵呢考虑向量w那么有 Hw (I - 2wwT)w w - 2w(wTw) - w 这说明对于平行于w的向量householder变换的作用是将其反向再考虑与向量w垂直的向量v即wTv0那么有 Hv (I - 2wwT)v v - 2w(wTv) v 这说明对于垂直于w的向量householder变换的作用就是对其不起任何作用那么对于一个普通的向量v来说平行于w的分量被householder反向垂直于w的分量不变那么最终的效果就是将向量v作关于法向量为w的平面的镜像对称 基于Householder变换的QR分解 因为HH-1所以AH1H2,…,Hn-1R即Q H1H2,…,Hn-1再根据AQRQTQI→RQTA。 再来比较一下QTQ与单位矩阵I的差距结果如图所示左边的是计算出来的QTQ右边是单位矩阵I 结果QTQ和I基本一样可见相比其他分解方法Householder算法能够减小舍入误差的累积提高计算结果的稳定性。此外该算法的时间复杂度较低具备较高的计算效率。 clc,clear; load MatrixA.mat; [m,n]size(A); Qzeros(m,n); Rzeros(n,n); %% Householder QR分解 [Q,R]qr(A); % matlab库函数就是用的Householder %% 正交性偏差 figure(1); E zeros(1,n); for k2:nmax 0;for i1:k-1temp abs(Q(:,i) * Q(:,k));if temp maxmax temp;endendE(1,k)max; end plot(E) %% 比较QTQ和I QTQQ*Q; figure(2); for i1:nfor j1:nscatter3(i,j,QTQ(i,j),red);hold on;end end zlim([0,1]); Ieye(n); figure(3); for i1:nfor j1:nscatter3(i,j,I(i,j),red);hold on;end end zlim([0,1]); 判断矩阵是否可逆 判断矩阵是否可逆有以下几种方法 存在一个矩阵B使得ABBAI确实可逆。矩阵行列式不为0可逆。矩阵满秩可逆。线性方程组Ax0只有0解可逆。线性方程组Axb只有特解可逆。 实际上如果一个方阵可以进行QR分解那么这个方阵也是可逆的。 所以我们直接尝试对矩阵B进行QR分解如果可以进行QR分解那么矩阵B可逆。那么我们可以先假设矩阵B是可以进行QR分解然后我们对矩阵B进行QR分解显然矩阵B是可以进行QR分解的这说明矩阵B是可逆的。 求逆 我们之前使用过高斯消元法来求解矩阵的逆实际上也可以使用QR分解求矩阵的逆。由A QRQTQ I则A-1 (QR)-1 R-1Q-1 R-1QT。 那么A-1就可以通过R-1QT得到但是实际上我们并不需要计算R-1让x R-1QT那么我们目标就是要得到x的结果因为RR-1QTQT即RxQT那么我们就需要求解这个线性方程组由于R是上三角矩阵所以直接回代就可以求出x即求出R-1QT即求出了A-1。 我们先用Gram-Schmidt算法实现的QR分解求解矩阵B的逆将其与用MATLAB内置的求逆函数结果进行比较结果如图所示红色的圆圈是matlab内置的求逆函数计算出来的结果绿色实心点是我们QR分解求出来的结果如果二者重合说明计算结果相同。 可以看到基本上绿色的点都和红色的圆圈重合了可见Gram-Schmidt算法QR分解求逆效果不错。 clc,clear; load MatrixB.mat; [m,n]size(B); Qzeros(m,n); Rzeros(n,n); %% Gram-Schmidt QR分解 for k1:nR(1:k-1,k)Q(:,1:k-1)*B(:,k); %求出R(1,K) - R(K-1,K)vB(:,k)-Q(:,1:k-1)*R(1:k-1,k); %求出正交化向量qR(k,k)norm(v); %求出RK,KQ(:,k)v/R(k,k); %单位化向量q end %% 求逆 inverseQRR\Q; inverseinv(B); %% 画图比较 for i0:n-1for j1:nscatter(i*nj,inverse(i1,j),red);hold on;scatter(i*nj,inverseQR(i1,j),green,.);hold on;end end 我们再用之前的高斯消元法求解矩阵B的逆将其与用MATLAB内置的求逆函数结果进行比较结果如图所示 可见高斯消元法求逆的结果也很好基本上绿色的点都和红色的圆圈重合了。 clc,clear; load MatrixB.mat; beye(50); B_b[B,b]; [n,m]size(B_b); for i1:nfor jm:-1:iB_b(i,j)B_b(i,j)/B_b(i,i);endfor ji1:nfor km:-1:iB_b(j,k)B_b(j,k)-B_b(j,i)*B_b(i,k);endend % fprintf(第%d次消元\n,i); % disp(rats(A_b)); end for in-1:-1:1for ji:-1:1for km:-1:n1B_b(j,k)B_b(j,k)-B_b(j,i1)*B_b(i1,k);endB_b(j,i1)0;end % fprintf(第%d次回代\n,n-i); % disp(rats(A_b)); end gaussInverseB_b(:,end-49:end); inverseinv(B); %% 画图比较 for i0:n-1for j1:nscatter(i*nj,inverse(i1,j),red);hold on;scatter(i*nj,gaussInverse(i1,j),green,.);hold on;end end 再用householder算法实现的QR分解求解矩阵B的逆将其与用MATLAB内置的求逆函数结果进行比较结果如图所示。 可见householder实现的QR分解求逆结果效果很好基本上和matlab内置求逆函数结果相同速度上也不慢。 clc,clear; load MatrixB.mat; [m,n]size(B); Qzeros(m,n); Rzeros(n,n); %% Householder QR分解 [Q,R]qr(B); % matlab库函数就是用的Householder %% 求逆 inverseQRR\Q; inverseinv(B); %% 画图比较 for i0:n-1for j1:nscatter(i*nj,inverse(i1,j),red);hold on;scatter(i*nj,inverseQR(i1,j),green,.);hold on;end end
http://www.w-s-a.com/news/501564/

相关文章:

  • 淘宝天猫优惠券网站建设费用腾讯邮箱企业邮箱登录
  • 深圳福田做网站公司海航科技网站建设
  • 网站降权查询wordpress更换文章背景色
  • 大型电商网站开发金融企业网站建设公司
  • 成都营销型网站建设价格化妆品品牌推广方案
  • 深圳公司手机网站制作苏州网站推广哪家好
  • 网站建设开发方式包括购买学校网站建设费计入什么科目
  • 做简单网站的框架图中小微企业查询平台
  • 哪些网站可以免费做产品推广建设建设部网站
  • 网站开发销售怎么做django做网站
  • 淘宝客网站做百度竞价万网域名怎么绑定网站
  • 建设网站找哪个公司北京知名大公司有哪些
  • 专业彩票网站开发网站流量在哪设置
  • 网站建设对应的岗位榆林做网站公司
  • 网站建设公司怎么算专业js网站分页怎么做
  • 网和网站的区别phpcms和帝国cms哪个好
  • wordpress改网站名字长沙网络营销外包
  • 宝塔怎么做第二个网站网站内容设计遵循的原则有
  • 网站违反了 google 质量指南免费ppt模版网站
  • 郑州网站建设郑州网站建设成都那家网站建设好
  • 温州网站排名优化公司如何招聘软件网站开发人员
  • 成都 网站建设公司哪家好襄阳行业网站建设
  • wordpress 调用时间做网站seo的公司哪家好
  • 手机上网站搭建网站账户系统
  • 西乡网站的建设柳州建站
  • 宁夏网站建设怎么样互联网 网站设计
  • 成都关键词seo推广平台手机端关键词排名优化软件
  • 学做软件的网站卡盟平台
  • 网站构建建设案例展示关于做服饰网站的首页
  • 如何建设网站论坛凡科建站手机版登录