欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    线性代数方程组求解20985.pdf

    • 资源ID:83538778       资源大小:1.07MB        全文页数:15页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    线性代数方程组求解20985.pdf

    线性代数方程组求解 一、实验要求 编程求解方程组:方程组 1:方程组 2:方程组 3:要求:用语言实现如下函数:实现矩阵的分解为输出参数中存放主元的位置排列函数成功时返回否则返回 求线代数方程组的解设矩阵为某个矩阵的分解 在内存中按行优先次序存放为分解的主元排列为方程组的右端向量 此函数计算方程组的解 并将结果存放在数组中 函数成功时返回否则返回矩阵的分解假设数组在内存中按行优先次序存放 此函数使用变换将其就地进行分解为输出参数中存放分解的上三角对角线元素求线代数方程组的解设矩阵为某个矩阵的分解 在内存中按行优先次序存放为分解的上三角对角线元素为方程组的右端向量函数计算方程组的解 并将结果存放在数组中函数成功时返回否则返回二、问题分析 求解线性方程组 Ax=b,其实质就是把它的系数矩阵 A 通过各种变换成一个下三角或上三角矩阵,从而简化方程组的求解;因此,在求解线性方程组的过程中,把系数矩阵 A 变换成上三角或下三角矩阵显得尤为重要,然而矩阵 A 的变换通常有两种分解方法:LU 分解法和 QR 分解法;1、LU 分解法:将 A 分解为一个下三角矩阵 L 和一个上三角矩阵 U,即:A=LU,其中 L=10010012121nnlll,U=nnnnuuuuuu0000022211211 2、QR 分解法:将 A 分解为一个正交矩阵 Q 和一个上三角矩阵 R,即:A=QR 三、实验原理 解 Ax=b 的问题就等价于要求解两个三角形方程组:Ly=b,求 y;Ux=y,求 x.设A为非奇异矩阵,且有分解式A=LU,L为单位下三角阵,U为上三角阵;L,U 的元素可以有 n 步直接计算定出;用直接三角分解法解 Ax=b 要求 A 的所有顺序主子式都不为零的计算公式:),2,1(niaulili,11/ualilil,i=2,3,n.计算 U 的第 r 行,L 的第 r 列元素 i=2,3,n:11rkkirkririulau ,i=r,r+1,n;rrrkkrikiriruulal/)(11,i=r+1,n,且 rn.求解 Ly=b,Ux=y 的计算公式;:,3,2,1111niylbybyikkikii .1,2,1,/)(,/1nniuxuyxuyxiinikkikiinnnn 四、实验步骤 1将矩阵 A 保存进计算机中,再定义 2 个空矩阵 L,U 以便保存求出的三角矩阵的值;利用公式,将矩阵 A 分解为 LU,L 为单位下三角阵,U 为上三角阵;2可知计算方法有三层循环;先通过公式计算出 U 矩阵的第一行元素liu 和 L 矩阵的第一列元素ill;再根据公式和,和上次的出的值,求出矩阵其余的元素,每次都要三次循环,求下一个元素需要上一个结果;3先由公式,Ly=b :,3,2,1111niylbybyikkikii 求出 y,因为 L 为下三角矩阵,所以由第一行开始求 y.4再由公式,Ux=y.1,2,1,/)(,/1nniuxuyxuyxiinikkikiinnnn 求出 x,因为 U 为上三角矩阵,所以由最后一行开始求 x.五、程序流程图 1、LU 分解法 开始输入系数矩阵A,常数项b及ndet1K=1,n-1,1调选列主元子程序i=k+1,n,1aikaik/akk(即求乘数mik)j=k+1,n,1aikaij-aik*akjjbibiaik*bkidetakkdetkbnbn/am(即求出xn)i=n-1,1,-1s0j=i+1,n,1ss+aij*bjjbi(bi-s)/aij输出b及det结束idetamndet回代过程消元过程 由主程序转来dakk,p ki=k+1,n,1|aik|d|daik,piid=0P=kj=k,n,1tapj,apj akj,akj tjtbp,bp bk,bk tdetdet返回主程序返回主程序输出失败标志,|A|=0det0结束选列主元=2、QR 分解法 开始输入数据 A,b矩阵 A的转置Householder 变换转置矩阵相乘输出上三角阵R=H3*H2*H1*A输入正交阵 Q=-(H3*H2*H1)T解上三角阵输出结果结束 六、实验结果 1、LU 分解法 方程组 1:方程组 2:方程组 3:2、QR 分解法 方程组 1:方程组 2:方程组 3:七、实验总结 为了求解线性方程组,我们通常需要一定的解法;其中一种解法就是通过矩阵的三角分解来实现的,属于求解线性方程组的直接法;在不考虑舍入误差下,直接法可以用有限的运算得到精确解,因此主要适用于求解中小型稠密的线性方程组;1、三角分解法 三角分解法是将 A 矩阵分解成一个上三角形矩阵 U 和一个下三角形矩阵 L,这样的分解法又称为 LU 分解法;它的用途主要在简化一个大矩阵的行列式值的计算过程,求反矩阵和求解联立方程组;不过要注意这种分解法所得到的上下三角形矩阵并非唯一,还可找到数个不同 的一对上下三角形矩阵,此两三角形矩阵相乘也会得到原矩阵;2、QR 分解法 QR分解法是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,所以称为QR 分解法;在编写这两个程序过程中,起初遇到不少麻烦虽然课上老师反复重复着:“算法不难的,Its so easy”但是当自己实际操作时,感觉并不是那么容易;毕竟是要把实际的数学问题转化为计算机能够识别的编程算法,所以在编写程序之前我们仔细认真的把所求解的问题逐一进行详细的分析,最终转化为程序段;每当遇到问题时,大家或许有些郁闷,但最终还是静下心来反复仔细的琢磨,一一排除了错误,最终完成了本次实验;回头一想原来编个程序其实也没有想象的那么复杂,只要思路清晰,逐步分析,就可以慢慢搞定了;附 源代码:include include include include include using namespace std;bool ludouble a,int pivot,int n;6ft,Bi;coutnGuass 解法的误差为:n;for int i=0;in;i+ifi=3 coutendl;printf%.16ft,Bi-1;expct=expct+Bi-1;printfn 误差期望值为%.16ftn,expct/6;coutendl;else cout矩阵 QR 分解:n;qrA,D,n;6ft,Bi;coutnHouseholder 解法的误差为:n;for int i=0;in;i+ifi=3 coutendl;printf%.16ft,Bi-1;expct=expct+Bi-1;printfn 误差期望值为%.16ftn,expct/6;coutendl;return 0;bool ludouble a,int pivot,int n/矩阵 LU 分解 int i,j,k;double max,temp;max=0;temp=0;for i=0;in-1;i+/依次对第 i 列进行处理 /选出 i 列的主元,记录主元位置 max=fabsani+i;pivoti=i;forj=i+1;jmax max=fabsanj+i;pivoti=j;/对第 i 列进行行变换,使得主元在对角线上 ifpivoti=i forj=i;jn;j+/ij 与 pivotij 换 只用对上三角进行处理 temp=ani+j;ani+j=anpivoti+j;anpivoti+j=temp;forj=i+1;jn;j+/Pi 部分下三角 L anj+i=anj+i/ani+i;forj=i+1;jn;j+/计算上三角 U fork=i+1;kn;k+anj+k=anj+k-anj+iani+k;/计算下三角 L fori=0;in-2;i+/i 行 k 列 fork=i+1;kn-1;k+temp=anpivotk+i;anpivotk+i=akn+i;akn+i=temp;return false;bool guassdouble const lu,int const p,double b,int n/求线性代数方程组的解 int i,j,k;double temp;/按 qivot 对 b 行变换,与 LU 匹配 fori=0;in-1;i+/貌似错误在这里哦 temp=bpi;bpi=bi;bi=temp;/Ly=b,将 y 的内容放入 b fori=0;in;i+forj=0;j=0;i-forj=n-1;ji;j-bi=bi-luni+jbj;bi=bi/luni+i;return false;void qrdouble a,double d,int n/矩阵的 QR 分解 int i,j,l,k;double tem,m;double temp;temp=double mallocsizeofdoublen;for i=0;in-1;i+/依次对第 i 列进行处理 /获得 tem 值 m=0;forj=i;j0 m=-sqrtm;else m=sqrtm;/获得 temp 放入矩阵,并存主元 d tem=0;di=m;ani+i=ani+i-m;forj=i;j=n-1;j+tem=tem+anj+ianj+i;tem=sqrttem;forj=i;j=n-1;j+anj+i=anj+i/tem;/调整矩阵 fork=i+1;kn;k+forj=i;jn;j+tem=0;forl=i;ln;l+tem=tem+anj+ianl+ianl+k;tempj=ajn+k-2tem;forj=i;jn;j+ajn+k=tempj;dn-1=an-1n+n-1;bool householderdouble constqr,double constd,doubleb,int n/求线性代数方程组的解 int i,j,l;double rem;double temp;temp=double mallocsizeofdoublen;fori=0;in-1;i+forj=i;jn;j+rem=0;forl=i;ln;l+rem=rem+qrln+iqrjn+ibl;tempj=bj-2rem;forj=i;j-1;j-forl=n-1;l=j;-l bj=bj-blqrjn+l;bj =bj/dj;return false;

    注意事项

    本文(线性代数方程组求解20985.pdf)为本站会员(得****3)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开