北航研究生数值分析上机作业 三 (报告+所有程序大全)(3)
//////////////// L=LL; U=UU; A=AA; b=bb;
///////////// kk=0; ii=0; jj=0; pp=0; qq=0;
////////////////////////////////// for(ii=0;ii<n;ii++) //对A_temp赋值 for(jj=0;jj<n;jj++)
A_temp[ii][jj]=A(ii,jj);
for(ii=0;ii<n;ii++) L(ii,ii)=1.0;
for (kk=0;kk<n;kk++) //总循环求出L U { sum_answer=0; s_count=kk;
for(pp=kk;pp<n;pp++)//doolitte 选主元 {
if (kk==0)
sum_answer=0; else
for(qq=0;qq<kk;qq++)
sum_answer=sum_answer+L(pp,qq)*U(qq,pp);
s=A_temp[pp][kk]-sum_answer; if (s>s_temp) {
s_temp=s; s_count=pp; }
else if (s<(-1.0)*s_temp) {
s_temp=(-1.0)*s; s_count=pp;
牛人报告,供大家参考,非常鄙视抄袭者。P.S. 北航数值分析吕老师讲的非常好,鼓励大家选这门课,能够学到很多东西。有问题联系作者!
} else ; }
for(pp=0;pp<n;pp++) //换位A_temp {
temp=A_temp[s_count][pp];
A_temp[s_count][pp]=A_temp[kk][pp]; A_temp[kk][pp]=temp; }
for(pp=0;pp<kk;pp++) //换位L {
temp=L(s_count,pp);
L(s_count,pp)=L(kk,pp); L(kk,pp)=temp; }
temp=b(s_count); b(s_count)=b(kk); b(kk)=temp;
for (ii=kk;ii<n;ii++) //先求一行U {
if(kk==0)
U(kk,ii)=A_temp[kk][ii]; else {
sum_answer=0;
for(qq=0;qq<kk;qq++)
sum_answer=sum_answer+L(kk,qq)*U(qq,ii);
U(kk,ii)=A_temp[kk][ii]-sum_answer; } }
for(ii=kk+1;ii<n;ii++) //求出一列L {
sum_answer=0;
for(qq=0;qq<kk;qq++)
sum_answer=sum_answer+L(ii,qq)*U(qq,kk);
L(ii,kk)=(A_temp[ii][kk]-sum_answer)/U(kk,kk);
牛人报告,供大家参考,非常鄙视抄袭者。P.S. 北航数值分析吕老师讲的非常好,鼓励大家选这门课,能够学到很多东西。有问题联系作者!
} } }
6) 回代求解方程组
#include<stdio.h> #include<math.h> #define size 4
#define L(a,b) *((double *)L+(a)*(size)+b) //L U 的宏定义,以方便操作二维数组
#define U(a,b) *((double *)U+(a)*(size)+b)
#define x(a) *((double *)x+a) //L U 的宏定义,以方便操作二维数组 #define y(a) *((double *)y+a) #define b(a) *((double *)b+a)
//#define xx(a) xx[a]
//A*uu=yy => L*U*uu=yy =>L*xx=yy && U*uu=xx
void huidai(double **LL,double **UU,double **bb,double **xx) //回代法求xx, LUx=b {
double **L; double **U; double **b; double **x;
double y[size]={0}; double sum_answer=0;
int ii=0; int jj=0;
L=LL; U=UU; b=bb; x=xx;
//迭代Ly=b y[0]=-b(0);
for(ii=1;ii<size;ii++)
牛人报告,供大家参考,非常鄙视抄袭者。P.S. 北航数值分析吕老师讲的非常好,鼓励大家选这门课,能够学到很多东西。有问题联系作者!
{ }
sum_answer=0;
for(jj=1;jj<ii;jj++) {
sum_answer=sum_answer+L(ii,jj)*y[jj]; }
y[ii]=-b(ii)-sum_answer;
//迭代Ux=y
x(size-1)=y[size-1]/U((size-1),(size-1));
for(ii=size-2;ii>=0;ii--) {
sum_answer=0;
for(jj=ii+1;jj<size;jj++) {
sum_answer=sum_answer+U(ii,jj)*x(jj); }
x(ii)=(y[ii]-sum_answer)/U(ii,ii); } }
7) 求解C=(B’*B)-1*(B’*U*G)*(G’*G)
#include<stdio.h> #include<math.h> #define size 10 //#define halfBW 3
#define L(a,b) L[a][b]//*((double *)L+(a)*(size)+b) //L U 的宏定义,以方便操作二维数组
#define U(a,b) U[a][b]//*((double *)U+(a)*(size)+b)
#define A(a,b) *((double *)A+(a)*(size)+b) //A 的宏定义,以方便操作二维数组 #define B(a,b) *((double *)B+(a)*(size)+b) //B 的宏定义,以方便操作二维数组 #define M(a,b) *((double *)M+(a)*(size)+b) //B 的宏定义,以方便操作二维数组 #define C(a,b) *((double *)C+(a)*(size)+b) //B 的宏定义,以方便操作二维数组 //#define X(a,b) *((double *)X+(a)*(size)+b) //A 的宏定义,以方便操作二维数组
#define X(a,b) X[a][b]
//#define b(ii) *((double *)b+ii)
void Matrix_LU(double **AA,double **BB,double **MM,double **CC,int
…… 此处隐藏:961字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)