教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> > 数学> 数值与符号计算__LU和QR分解实验报告

数值与符号计算__LU和QR分解实验报告

上传者:强双怀
|
上传时间:2015-05-08
|
次下载

数值与符号计算__LU和QR分解实验报告

数值与符号计算 实验(丑)

线性代数方程组求解

姓名: 学号: 学院:

1 实验题目

用C/C++语言实现如下函数:

bool lu(double* a, int* pivot, int n);矩阵的LU分解

bool guass(double const* lu, int const* p, double* b, int n);求线性代数方程组的解

void qr(double* a, double* d, int n);矩阵的QR分解

bool hshld(double const*qr, double const*d, double*b, int n); 求线性代数方程组的解

2 实验要求

撰写详细的实验报告 不必修改函数界面

用高斯列选主元消去法和矩阵QR分解两种方法求解下面3个方程组,比较这两种方法的误差。

2.1 求解方程

??1?1??2?1?3?1??4?1?5?1??6

121314151617

131415161718

141516171819

11?56?11?

?67?11?78?11?

?89?11?910?11?

?

1011?

11??1???????26????x1??1?1?????1??x??237?21????11

???????x3??348? =???111?x4??????????

9??x5??45

1????11

????????x6???5610??111?????????

11??67

??????????????????

1??01?01?

? ?11???11??0

令n?n矩阵

?1000

?

??1100??1?110Gn??

?

??1?1?1?1?

??1?1?1?1?

令n维向量

Tbn??2,1,0,?1,?2,???,4?n,2?n?

求解方程

G20x?b20

注:上面两个方程准确解都是

Tx??1,1,???,1,1?

???2,3,4,???,n,n?T bn

求解方程

? G20x?b20

3 实验算法结果

3.1 矩阵的Lu分解算法代码如下:

bool lu(double* a, int* pivot, int n)//矩阵LU分解 {

int i,j,k;

double max,temp;

max = 0;

temp = 0;

for (i=0; i<n-1; i++)//依次对第i列进行处理 {

// 选出i列的主元,记录主元位置

max = fabs(a[n*i + i]);

pivot[i]=i;

for(j=i+1; j<n; j++)//j表示第j行

{

if( fabs(a[n*j + i])>max)

{

max= fabs(a[n*j + i]) ;

pivot[i]=j;

}

}

// 对第i列进行行变换,使得主元在对角线上 if(pivot[i]!=i)

{

for(j=i; j<n; j++)//ij与pivot[i]j换 只用对上三角进行处理 {

temp=a[n*i + j];

a[n*i + j]=a[n*pivot[i]+ j];

a[n*pivot[i]+ j]=temp;

}

}

for(j=i+1; j<n; j++)//Pi 部分下三角L

a[n*j + i]=a[n*j+i]/a[n*i+i];

for(j=i+1; j<n; j++)//计算上三角U

for(k=i+1; k<n; k++)

a[n*j + k]=a[n*j+k]- a[n*j+i]*a[n*i+k];

}

//计算下三角 L

for(i=0; i<n-2; i++)//i行k列

for(k=i+1; k<n-1;k++)

{

temp=a[n*pivot[k] + i];

a[n*pivot[k] + i]=a[k*n + i];

a[k*n + i]=temp;

}

return false ;

}

3.2 高斯求解线性方程组代码如下:

bool guass(double const* lu, int const* p, double* b, int n)//求线性代数方程组的解

{

int i,j;

double temp;

//按qivot对b行变换,与LU匹配

for(i=0; i<n-1; i++) //貌似错误在这里哦

{

temp = b[p[i]];

b[p[i]] = b[i];

b[i]=temp;

}

//Ly=b,将y的内容放入b

for(i=0; i<n; i++)

for(j=0; j<i; j++)

b[i]=b[i]-lu[n*i+j]*b[j];

//Uy=x,将x的内容放入b

for(i=n-1; i>=0; i--)

{

for(j=n-1; j>i; j--)

b[i]=b[i]-lu[n*i+j]*b[j];

b[i]=b[i]/lu[n*i+i];

}

return false;

}

3.3 矩阵的QR分解算法代码如下:

void qr(double* a, double* d, int n) //矩阵的QR分解

{

int i,j,l,k;

double tem,m;

double *temp;

temp = (double *)malloc(sizeof(double)*n);

for (i=0; i<n-1; i++)//依次对第i列进行处理

{

//获得tem值

m = 0 ;

for(j=i; j<n; j++)//j表示第j行

m = m +a[n*j + i]*a[n*j + i ];

if(a[n*i + i ]>0)

m = -sqrt(m);

else

m = sqrt(m);

//获得temp放入矩阵,并存主元d

tem = 0 ;

d[i] = m ;

a[n*i +i] = a[n*i +i] - m;

for(j=i; j<=n-1; j++)

tem=tem + a[n*j +i]*a[n*j +i];

tem= sqrt(tem);

for(j=i; j<=n-1; j++)

a[n*j +i] = a[n*j +i]/tem ;

// 调整矩阵

for(k=i+1;k<n;k++)

{

for(j=i; j<n; j++)

{

tem = 0 ;

for(l=i; l<n; l++)

tem =tem + a[n*j + i]*a[n*l + i]*a[n*l + k]; temp[j] = a[j*n+k] - 2*tem;

}

for(j=i; j<n; j++)

a[j*n+k] = temp[j];

}

}

d[n-1] = a[(n-1)*n+n-1];

}

3.4 QR求解线性方程组的代码如下:

bool householder(double const*qr, double const*d, double*b, int n)//求线性代数方程组的解

{

int i,j,l;

double rem;

double *temp;

temp = (double *)malloc(sizeof(double)*n);

for(i=0; i<n-1; i++)

{

for(j=i; j<n; j++)

{

rem = 0;

for(l=i;l<n; l++)

rem = rem + qr[l*n+i]*qr[j*n+i]*b[l];

temp[j] = b[j] - 2*rem;

}

for(j=i; j<n; j++)

b[j] = temp[j];

}

for(j=n-1; j>-1; j--)

{

for(l=n-1; l!=j;--l)

b[j] =b[j] - b[l]*qr[j*n+l];

b[j] = b[j] /d[j];

}

return false;

}

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注

全国教资统考:初中地理-工业指向类型
2015下半年教资统考中学《教育知识与能力》中学生身心发展规律
全国教资统考:初中美术-教学设计常考知识点分析
全国教资统考:高中美术-中美史常考知识点分析
教师资格统考科目三《生物学科知识与能力》初高中异同
2015下半年教资统考小学《教育教学知识与能力》教育与人的发展
2015下半年地理教师资格国考备考资料
2015下半年政治教师资格国考备考资料
【微信备考】全国教资统考:高中语文-中外文学
2015下半年体育教师资格国考备考资料
全国教资统考:高中英语-语言知识与能力之非谓语动词分析
2015下半年数学教师资格国考知识点
全国教资统考:初中历史教学设计-教学目标
全国教资统考:初中政治-人大代表的产生及职责
全国教资统考:初中信息技术-计算机网络
2015下半年政治教师资格国考知识点
2015下半年音乐教师资格国考练习题
全国教资统考:初中政治-调控情绪的方法
幼儿教师资格面试结构化试题讲解及练习
2015年下半年教师资格考试高中化学物质颜色
2015下半年历史教师资格国考知识点
全国教资统考:初中数学-导数的应用
全国教资统考:初中语文教材知识备考资料
高中数学高频考点梳理-特征值与特征向量
全国教资统考:初中英语-教学设计之教案撰写分析
2015下半年美术教师资格国考知识点
小学教师资格笔试重要考点梳理:教育教学知识与能力
2015下半年教资统考小学《教育教学知识与能力》知识点
2015下半年幼儿教师资格国考备考资料
2015下半年教资统考中学《教育知识与能力》之教育基础人物

网友关注视频

《小学数学二年级下册》第二单元测试题讲解
冀教版小学数学二年级下册第二单元《余数和除数的关系》
二年级下册数学第一课
沪教版八年级下册数学练习册21.4(1)无理方程P18
沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
化学九年级下册全册同步 人教版 第25集 生活中常见的盐(二)
外研版英语三起5年级下册(14版)Module3 Unit2
北师大版数学 四年级下册 第三单元 第二节 小数点搬家
外研版英语三起6年级下册(14版)Module3 Unit2
外研版英语七年级下册module3 unit2第一课时
冀教版小学数学二年级下册第二单元《有余数除法的整理与复习》
外研版英语三起6年级下册(14版)Module3 Unit1
北师大版数学四年级下册第三单元第四节街心广场
3月2日小学二年级数学下册(数一数)
沪教版牛津小学英语(深圳用)五年级下册 Unit 1
冀教版小学数学二年级下册第二单元《租船问题》
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,湖北省
3.2 数学二年级下册第二单元 表内除法(一)整理和复习 李菲菲
苏科版数学八年级下册9.2《中心对称和中心对称图形》
二年级下册数学第三课 搭一搭⚖⚖
苏科版数学七年级下册7.2《探索平行线的性质》
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,广东省
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,天津市
冀教版小学数学二年级下册第二单元《有余数除法的竖式计算》
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
30.3 由不共线三点的坐标确定二次函数_第一课时(市一等奖)(冀教版九年级下册)_T144342
冀教版小学英语四年级下册Lesson2授课视频
8.练习八_第一课时(特等奖)(苏教版三年级上册)_T142692
北师大版小学数学四年级下册第15课小数乘小数一
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,辽宁省