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

新昌网站开发天津专业网站制作

新昌网站开发,天津专业网站制作,最新外贸seo,wordpress 数据库删除几种求逆矩阵的方法总结#xff0c;以Matlab语言为例 *0* 引言*1* 简单描述函数实现*2* 方法调用计算对比 0 引言 最近在使用函数库求解逆矩阵的时候发现同一个矩阵使用不同的语言、不同的求解方法会产生不同精度的结果#xff0c;特别是阶数很高的方阵#xff0c;一些库中的… 几种求逆矩阵的方法总结以Matlab语言为例 *0* 引言*1* 简单描述函数实现*2* 方法调用计算对比 0 引言 最近在使用函数库求解逆矩阵的时候发现同一个矩阵使用不同的语言、不同的求解方法会产生不同精度的结果特别是阶数很高的方阵一些库中的算法为了使计算速度提升用了非常规方法。这里整理了3种常用的矩阵求逆方法伴随矩阵法、LU分解法和高斯消元法并用Matlab进行了实现一些过程参考了NET博文 1 简单描述函数实现 伴随矩阵法   对于一个矩阵A如果它的伴随矩阵存在并且A的行列式不为零那么A的逆矩阵等于它的伴随矩阵除以A的行列式。 设A是一个n阶矩阵其伴随矩阵为A*。那么A的逆矩阵为 A − 1 A^{-1} A−1根据公式 A − 1 A ∗ / ∣ A ∣ A^{-1} A* / |A| A−1A∗/∣A∣ 其中|A|表示A的行列式。 因此如果你已经求得了矩阵A的伴随矩阵A*并且知道A的行列式|A|不为零那么你可以通过上述公式来求得A的逆矩阵A^(-1)。 % 伴随矩阵法求逆矩阵 function value inv_Adjoint(matrixA,tol)As size(matrixA);N As(1);if(nargin 2)tol 1e-15;endif( abs(det(matrixA)) tol )msg the matrix is not full rank;error(msg);endbb adjoint(matrixA); % 伴随矩阵法d det(matrixA); % 矩阵的行列式子value bb/d; endLU分解法   LU分解是一种将矩阵分解为一个下三角矩阵和一个上三角矩阵的方法。这种分解方法可以有效地将矩阵求逆的计算量减少一半。具体步骤如下 将原矩阵表示为A LU其中L是一个下三角矩阵U是一个上三角矩阵。解下三角矩阵方程LY I其中Y是一个列向量I是单位矩阵。解上三角矩阵方程UX Y其中X是一个列向量。求解出的X就是原矩阵A的逆矩阵。 这种方法的好处是可以避免直接使用矩阵求逆的方法提高计算精度。由于LU分解方法是通过矩阵的分解来求逆因此可以在一定程度上避免了矩阵求逆时可能出现的数值不稳定性。 然而需要注意的是当原矩阵的行列式为0时即矩阵不可逆时LU分解方法无法计算逆矩阵。在这种情况下我们需要采用其他方法来求解。 总结起来对于矩阵求逆LU分解是一种精度较高的方法。它通过将矩阵分解为下三角矩阵和上三角矩阵来进行计算从而提高了计算精度并且避免了一些数值不稳定性的问题。 % LU分解求逆 function value inv_lu(matrixA,tol)As size(matrixA);N As(1);value zeros(N,N);if(nargin 2)tol 1e-15;endif( abs(det(matrixA)) tol )msg the matrix is not full rank;error(msg);endMatrixBeye(N); Y value;array1 1:N;for i1:N-1[~, j]max(abs(matrixA(i:N,i)));num1 matrixA(i,:);matrixA(i,:) matrixA(ji-1,:);matrixA(ji-1,:) num1;num1 array1(i);array1(i) array1(ji-1);array1(ji-1) num1;if (matrixA(i,i)0)breakendfor ji1:Nnum1matrixA(j,i)/matrixA(i,i);matrixA(j,i) num1;matrixA(j,i1:N)matrixA(j,i1:N)-num1*matrixA(i,i1:N);endendfor i1:NY(1,i) MatrixB(array1(1),i);for j2:NY(j,i) MatrixB(array1(j),i)-matrixA(j,1:j-1)*Y(1:j-1,i);endvalue(N,i)Y(N,i)/matrixA(N,N);for jN-1:-1:1value(j,i)(Y(j,i)-matrixA(j,j1:N)*value(j1:N,i))/matrixA(j,j);endend end 高斯消元法;   要用高斯消元法求一个n*n矩阵的逆矩阵可以按以下步骤进行 将原矩阵和单位矩阵合并成一个增广矩阵形成一个4*8的矩阵。利用高斯消元法将矩阵的左半部分化为上三角矩阵。利用高斯消元法将矩阵的右半部分也化为上三角矩阵。将得到的上三角矩阵进行回代将其化为单位矩阵。得到的矩阵的右半部分即为所求的逆矩阵。 % 高斯消元法求逆矩阵 function value inv_gaosi(matrixA,tol)rc size(matrixA);N rc(1);value zeros(N,N);if(nargin 2)tol 1e-15;endif( abs(det(matrixA)) tol )msg the matrix is not full rank;error(msg);endMeye eye(N);for i1:NmaxV matrixA(i,i);indexi;for ji1:Nif(abs(matrixA(j,i))abs(maxV))maxV matrixA(j,i);indexj;endendfor j1:Nnum1 matrixA(i,j);matrixA(i,j) matrixA(index,j);matrixA(index,j) num1;num1Meye(i,j);Meye(i,j) Meye(index,j);Meye(index,j) num1;endfor ji1:Nnum1 matrixA(j,i)/matrixA(i,i);for k1:NmatrixA(j,k) matrixA(j,k) - num1*matrixA(i,k);Meye(j,k) Meye(j,k)-num1*Meye(i,k);endendendfor iN:-1:1num1 matrixA(i,i);for ji:NmatrixA(j,i)matrixA(j,i)/num1;endfor j1:NMeye(i,j)Meye(i,j)/num1;endfor ji-1:-1:1num1matrixA(j,i);matrixA(j,i)0;for k1:NMeye(j,k)Meye(j,k)-num1*Meye(i,k);endendendvalueMeye; end2 方法调用计算对比 clc;clear; format long a [0.863926332645926,2.744822685285432E-002,0.358800923218055,7.587357258855056E-002;...0.737486519704736,0.275982186877394,0.928772666000609,0.219795611073554;...0.172452279207503,0.378156212690881,0.506403133293737,1.243293753676099E-002;...0.938238414353813,0.119337792575225,0.952934573404228,0.859760719854225]; aa inv(a); % bb inv_gaosi(a); % 高斯消元法 cc inv_lu(a); dd inv_Adjoint(a);%% .............................................................%% ......... out ............ aa 1.997894526750277 -1.386596126529541 0.814427151532846 0.1663888827860551.987598379664842 -4.975548628572671 5.811811940191023 1.012537147110808-2.163170299120444 4.249207887174017 -2.673735235716419 -0.856735351177312-0.058547952499082 -2.505916255800319 1.268026177518930 1.790575344111539 bbbb 1.997894526750277 -1.386596126529541 0.814427151532846 0.1663888827860541.987598379664842 -4.975548628572672 5.811811940191024 1.012537147110807-2.163170299120444 4.249207887174018 -2.673735235716419 -0.856735351177311-0.058547952499082 -2.505916255800319 1.268026177518930 1.790575344111538 cccc 1.997894526750277 -1.386596126529541 0.814427151532846 0.1663888827860541.987598379664842 -4.975548628572672 5.811811940191024 1.012537147110807-2.163170299120444 4.249207887174018 -2.673735235716419 -0.856735351177311-0.058547952499082 -2.505916255800319 1.268026177518930 1.790575344111538 dddd 1.997894526750279 -1.386596126529543 0.814427151532847 0.1663888827860541.987598379664844 -4.975548628572673 5.811811940191022 1.012537147110807-2.163170299120446 4.249207887174019 -2.673735235716419 -0.856735351177311-0.058547952499082 -2.505916255800320 1.268026177518929 1.790575344111539 仔细观察不难看出在小数点后15位左右不同方法间会存在微笑差异这个差异或者叫误差在一般计算中无所谓可以被忽略但对精度要求特高的过程就需要斟酌一下使用哪种求逆方法可以最大限度减小计算误差带来的影响。 还有哪些好的方法可以留言交流希望对你有所帮助
http://www.pierceye.com/news/297302/

相关文章:

  • 做招标投标网站如何张家口专业做网站公司
  • 做网站广告中敏感词会涉及到工商彩票网站开发. 极云
  • 怎么做网站数据库东莞本地招聘网站有哪些
  • 网站维护中是不是关闭网站了无货源电商软件
  • 用英文字母做网站关键词flash网站建设个人简介
  • 百度做商务网站多少钱wordpress编辑器文字颜色
  • 乌市正规网站建设网站内页301重定向怎么做
  • 手机网站 跳转把开发的网站让外网能访问要怎么做
  • 网站优化建设扬州网站的不同类
  • 为什么做电影网站没有流量仙桃网站设计
  • 个人站长做哪些网站好开发app软件怎么挣钱
  • 求免费网站能看的2021建立网站要什么条件和多少钱
  • 温州网站推广优化wordpress实用的插件
  • 烟台做网站找哪家好企业网站建设品牌
  • 无备案网站做cdnwordpress ishome
  • 国外营销企业网站公司的网站建设服务费
  • 外包做网站的要求怎么写一站式网站建设平台
  • 太原做网站联系方式番禺人才网招聘网
  • 怎样推广一个网站东莞市建设工程检测中心网站
  • 哪个网站做招聘海报比较好搜索公众号
  • 外包给网站建设注意事项营销方法有哪些方式
  • 提供手机网站制作公司网站建设与域名建设
  • 网站建设计入哪个明细科目网站公众号建设工具
  • 自己做公司网站难吗域名备案管局审核要多久
  • 电子商务网站建设花费百度公司的业务范围
  • 虹口网站建设公司在线观看视频网站怎么做
  • 哈尔滨市建设安全监察网站_首页新津网站建设
  • 安卓 网站整站下载网址导航怎么更换
  • 数据展示网站模板备案 非网站备案
  • 邯郸做网站推广找谁jsp做的网站代码