版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、解线性方程组的Doolittle分解目的意义:1.学习和掌握线性代数方程组的Doolittle分解法。 2.运用Doolittle分解法进行计算。方法原理:n阶线性方程组的系数矩阵A非奇异且有分解式A=LR,其中L为单位下三角矩阵,R为上三角矩阵,即L=(lij),当i<j时,lij=0;R=(rij),当i>j时,rij=0,矩阵A的这种分解方法为Doolittle的分解。a11a21 an1a12a22 an2a1n1l a2n=21annln11 ln2r11 1r12r22r1n r2n rnn比较等号两边的第i行和第j列的元素,可知aij=ni-1lk=1nikkjr,因
2、为li,i+1= =lin=rj+1,j= =rij=0,所rij=aij-likrkj,j=i,i+1, n.k=1ii-1i-1aij=likrkj=likrkj+rij,i<=j,从而k=1k=1当j=i+1,i+2, ni-1时,aij=ljkrkj=ljkrkj+ljirii,从而lji=(aji-ljkrki)/rii,j=i+1, ,n,于是就得k=1k=1k=1到了计算LR分解的一般计算公式。算法描述:Setp1:利用for循环求出rkii-1=aki-lkprpi,lik=(aik-p=1k-1lp=1k-1ippkr)/rkk。Step2:yi=bi-likyk,得出
3、xi=(yi-k=1k=i+1rx)/rikkiin程序代码:头文件:#include<iostream.h> typedef double Datatype;class Matrixprivate:Datatype *ar;int M;int N;public:Matrix(int a=0,int b=0);Matrix();void print();void Init();void Doolittle(Matrix &L,Matrix &R);friend void Init_LR(Matrix &L,Matrix &R); void get_Y
4、(Matrix &b,Matrix &L); void get_X(Matrix &Y,Matrix &R); ;CPP文件:#include<iostream.h>#include<malloc.h>#include<iomanip.h>#include"Doolittle.h"void Init_LR(Matrix &L,Matrix &R) for(int i=0;i<L.N;+i)for(int j=0;j<L.N;+j)if(i<=j)if(i!=j)L.arij
5、=0;elseL.arij=1;elseR.arij=0;Matrix:Matrix(int a,int b)/构造函数 M=a;N=b;ar=(Datatype *)malloc(sizeof(Datatype *)*M); for(int i=0;i<M;+i)ari=(Datatype *)malloc(sizeof(Datatype)*N); Matrix:Matrix()/析构函数 for(int i=0;i<M;+i)free(ari);free(ar);void Matrix:print()/打印函数 for(int i=0;i<M;+i)for(int j=0
6、;j<N;+j)cout<<setw(5)<<arij;cout<<endl;void Matrix:Init()/初始化函数 for(int i=0;i<M;+i)cout<<"input the data of "<<i+1<<" line"<<endl; for(int j=0;j<N;+j)cin>>arij;void Matrix:Doolittle(Matrix &L,Matrix &R)/LR分解函数 for(i
7、nt i=0;i<N;+i)for(int j=i;j<N;+j)Datatype sum=0;for(int k=0;k<i;+k)sum+=L.arik*R.arkj;R.arij=arij-sum;for(j=i+1;j<N;+j)Datatype sum=0;for(int k=0;k<i;+k)sum+=L.arjk*R.arki;L.arji=(arji-sum)/R.arii;void Matrix:get_Y(Matrix &b,Matrix &L)/计算得到Yfor(int i=0;i<M;+i)Datatype sum=0
8、;for(int j=0;j<i;+j)sum+=L.arij*arj0;ari0=b.ari0-sum;void Matrix:get_X(Matrix &Y,Matrix &R)/计算得到Xfor(int i=M-1;i>=0;-i)Datatype sum=0;for(int j=M-1;j>i;-j)sum+=R.arij*arj0;ari0=(Y.ari0-sum)/R.arii;主程序:#include"Doolittle.h"void main()int row;cout<<"input row"
9、;<<endl;cin>>row;Matrix A(row,row),L(row,row),R(row,row),Y(row,1),B(row,1),X(row,1); cout<<"请输入矩阵A"<<endl;A.Init();cout<<"请输入矩阵b"<<endl;B.Init();Init_LR(L,R);A.Doolittle(L,R);cout<<"*分解矩阵A得L为*"<<endl;L.print();cout<<"*分解矩阵A得R为*"<<endl;R.print();Y.get_Y(B,L);cout<<"*求得Y为*"<<endl;Y.print();X.get_X(Y,R);cout<<"*求得X为*"<<endl;X.pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI博士培养路径
- 泌尿系统感染辩证
- 2025 高中语文必修上册《哦香雪》香雪的乡村文化传承与创新课件
- 养蚕技术考试题库及答案
- 血型鉴定护理试题及答案
- 2025年临床执业医师《外科护理学》专项训练卷
- 医保基金使用内部管控培训试题及答案
- 徐州钳工考试题库及答案
- 医疗器械广告审查办法培训试题及答案
- 医疗争议第三方调解衔接制度
- 2026年国网江苏省电力有限公司高校毕业生招聘约825人(第二批)笔试模拟试题及答案解析
- 2026年春人音版(简谱)(新教材)小学音乐二年级下册教学计划及进度表
- 【四年级】【数学】【春季下】开学家长会:与数同行共话梦想【课件】
- 2026年陕西航空职业技术学院单招职业技能测试模拟测试卷学生专用
- 2026年及未来5年中国面粉加工行业市场发展现状及投资方向研究报告
- 2026年春季统编版小学道德与法治四年级下册教学计划
- 2026年春季北师大版(2024)小学数学二年级下册教学计划
- 2026年内蒙古建筑职业技术学院单招职业技能考试题库及参考答案详解(新)
- 互联网企业网络安全管理制度(标准版)
- 1.1时代为我搭舞台(课件)-中职思想政治《心理健康与职业生涯》高教版2023基础模块
- 打击诈骗犯罪 警民同心发力 (课件)
评论
0/150
提交评论