列主元高斯消元法的C语言编程

列主元高斯消元法

基本思想:用高斯消元法求解线性方程组时,为避免小的主元,在进行第k 步消元前,应该在第k 列(k ) 元素a ik (i =k , (k ) (k ) 例如|a i k k |=max |a ik |,再把第i k 个方程与第k , n ) 中找出第一个出现的绝对值最大者,

k ≤i ≤n

个方程进行交换,使a i (k k ) 成为主元。我们称这个过程为选主元。由于只在第k 列元素中选主元,通常也称k

为按列选主元。

列主元高斯消元法的C 语言编程

列主元高斯消元法的C 语言程序代码如下:

#include

#include

#include

#define N 4

void Gause_pivot(int n,double A[N][N+1],double x[])

{

//高斯消元

int i,j,k;

for(k=1;k

{

//选主元

int ii,jj,kk,row;

double max,temp;

ii=1;kk=k;

max=A[ii-1+(kk-1)][kk-1];

for(jj=ii+1;jj

{

if (fabs(A[jj-1+(kk-1)][kk-1])>fabs(max))

{

max=A[jj-1+(kk-1)][kk-1];

row=jj+(kk-1);

}

}

for(ii=1;ii

{

temp=A[kk-1][ii-1];

A[kk-1][ii-1]=A[row-1][ii-1];

A[row-1][ii-1]=temp;

}

for(i=k+1;i

for(j=k+1;j

A[i-1][j-1]-=A[k-1][j-1]*A[i-1][k-1]/A[k-1][k-1];

}

//回代求解

x[n-1]=A[n-1][n]/A[n-1][n-1];

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

{

x[k-1]=0.0;

for(j=k+1;j

x[k-1]=(A[k-1][n]-x[k-1])/A[k-1][k-1];

}

//在屏幕上输出结果

for(i=0;i

printf("%f\n",x[i]);

}

void main()

{

double A[N][N+1]={{0,2,-0.1,7,76.2},{6,0,3,-5,15},{3,1,2,5,86},{2,4,1,0,48}}; double x[N]={0};

Gause_pivot(N,A,x);

}

列主元高斯消元法

基本思想:用高斯消元法求解线性方程组时,为避免小的主元,在进行第k 步消元前,应该在第k 列(k ) 元素a ik (i =k , (k ) (k ) 例如|a i k k |=max |a ik |,再把第i k 个方程与第k , n ) 中找出第一个出现的绝对值最大者,

k ≤i ≤n

个方程进行交换,使a i (k k ) 成为主元。我们称这个过程为选主元。由于只在第k 列元素中选主元,通常也称k

为按列选主元。

列主元高斯消元法的C 语言编程

列主元高斯消元法的C 语言程序代码如下:

#include

#include

#include

#define N 4

void Gause_pivot(int n,double A[N][N+1],double x[])

{

//高斯消元

int i,j,k;

for(k=1;k

{

//选主元

int ii,jj,kk,row;

double max,temp;

ii=1;kk=k;

max=A[ii-1+(kk-1)][kk-1];

for(jj=ii+1;jj

{

if (fabs(A[jj-1+(kk-1)][kk-1])>fabs(max))

{

max=A[jj-1+(kk-1)][kk-1];

row=jj+(kk-1);

}

}

for(ii=1;ii

{

temp=A[kk-1][ii-1];

A[kk-1][ii-1]=A[row-1][ii-1];

A[row-1][ii-1]=temp;

}

for(i=k+1;i

for(j=k+1;j

A[i-1][j-1]-=A[k-1][j-1]*A[i-1][k-1]/A[k-1][k-1];

}

//回代求解

x[n-1]=A[n-1][n]/A[n-1][n-1];

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

{

x[k-1]=0.0;

for(j=k+1;j

x[k-1]=(A[k-1][n]-x[k-1])/A[k-1][k-1];

}

//在屏幕上输出结果

for(i=0;i

printf("%f\n",x[i]);

}

void main()

{

double A[N][N+1]={{0,2,-0.1,7,76.2},{6,0,3,-5,15},{3,1,2,5,86},{2,4,1,0,48}}; double x[N]={0};

Gause_pivot(N,A,x);

}


相关内容

  • 大地测量实习报告
  • 课程编号:1300158 课程性质:必修 大地测量计算与实习 实 习 报 告 学 院: 测绘学院 专业方向: 测绘工程A方向 实习地点: 武汉大学 班级组号: 学生姓名: 学号: 指导教师: 刘宗泉 苏新洲 丁士俊 向 东 黄海兰 2012年 6月18日 至 2012年 7月4 日 目录 目 录.. ...

  • 15.高智断瓶中线
  • 15.高斯智断瓶中线 设计: 五年级教师 执教: 使用时间: 第二课时 [学习目标] 1.初步感知 学习前面部分描写为后文作铺垫的表达方法. 2通过人物语言.动作.神态等细节描写,感悟高斯的品质. 一.自主学习 (自评:A B C D) [要求提示] 1.默读课文,想想高斯怎样智断瓶中线的?断瓶中线 ...

  • 大地测量学实习报告书
  • 大地测量学实习报告书 组长: 张体强 组员: 张翔,张凯琪,吴佳,郭晓雷,周玮晨 班级: 海测一 所在学校: 上海海洋大学 任课老师: 朱卫东 上海海洋大学-海洋科学学院 二零一三 年 三 月 声明:本次实习报告书属于本小组独立完成,不存在盗窃别组的报告书情况,若有类同,该版为先. 目录 一.实习目 ...

  • 数学课上如何抓住学生的
  • 初中数学课上如何抓住学生的"心 摘要:上课是学生理解和掌握基础知识和基本技能.培养和发展能力的一个关键环节.在上课的过程中, 抓住学生的"心",让学生认真学习,是非常重要的.本文中笔者通过在教学中的研究与观察, 把握了课堂中的小细节, 应用了各种方法来抓住学生的&quo ...

  • 分段累加法大地主题解算与高斯投影C语言程序
  • 大地主题解算与高斯投影正反算程序设计 测绘一班 XX [1**********]96 一.大地主题解算: 程序源码: #include #include #define PI 3.[1**********]98 int main(void) { double bx,by,bz,B1,lx,ly,lz ...

  • 大地测量计算与实习报告
  • 课程编号: [1**********] 课程编号: 课程性质: 必修 课程性质: 大地测量计算与实习 实 习 报 告 学院: 学院: 专业: 专业: 地点: 地点: 班级: 班级: 组号: 组号: 姓名: 姓名: 学号: 学号: 教师: 教师: 测 绘 学 院 测 绘 工 程 校 20xxxx 第1 ...

  • 初中数学手抄报--数学园地设计
  • 高斯(Gauss 1777~1855)生于Brunswick,位于现在德国中北部.他的祖父是农民,父亲是泥水匠,母亲是一个石匠的女儿,有一个很聪明的弟弟,高斯这位舅舅,对小高斯很照顾,偶而会给他一些指导,而父亲可以说是一位「大老粗」,以为只有力气能挣钱,学问这类劳什子对穷人是没有用的. 高斯很早就展 ...

  • 人脸识别方法的研究与实现
  • 人脸识别方法的研究与实现 目 录 第一章 绪论 第一节 课题背景 一 课题的来源------------------------------------------------------------------------------1 二 人脸识别技术的研究意义----------------- ...

  • 西师版小学第九册语文第四单元教案
  • 单元目标1.运用学过的方法,学会本单元生字及新词,并能工整书写. 2.能正确.流利.有感情地朗读课文. 3.读懂课文,理解含义深刻的句子,体会作者的思想感情,领悟文章的表达方 法. 4.让学生感受文中人物(闰土)形象,体会外貌描写对刻画人物形象的作用. 5.读懂课文,感受弹琴姑娘勤学苦练.锲而不舍的 ...