数值分析 c语言实现高斯赛德尔解法.pdf

数值分析 c语言实现高斯赛德尔解法.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数值分析

学院:计算机学院

姓名:袁薪洋

1.实验目的:

1熟练掌握C语言程序设计,编程求解问题。

2.运用高斯-赛德尔迭代公式求解线性方程组。

2.实验内容:

用高斯-赛德尔迭代公式求解方程组。

10x1-x2-2x3=7.2

-x1+10x2-2x3=8.3

-x1-x2+5x3=4.2

程序的核心代码:

#includestdio.h

#defineNUMBER20

floatA[NUMBER][NUMBER+1];

floatark;

intflag,n;

voidexchange(intr,intk);

floatmax(intk);

voidmain()

{

floatx[NUMBER];/*此数组用于存放方程解*/

intr,k,i,j;

用高斯-赛德尔迭代法解线性方程组赛德尔迭代法解线性方程组

请输入方程组的维数:请输入方程组的维数:

请输入系数矩阵A和向量和向量

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

{

请输入a%d1--a%d%d系数和向量b%d(数之间用

空格格开空格格开

//实现将每一行中的系数和向量一次性输入,数之间用空

格格开,输完后回车确定

for(j=1;j=n+1;j++)//将刚才输入的数存入数组

}

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

{

ark=max(k);

if(ark==0)//判断方程是否为线性方程

{

此方程组不合法此方程组不合法

}

elseif(flag!=k)

exchange(flag,k);

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

for(j=k+1;j=n+1;j++)

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

}

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

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

{

floatme=0;

for(j=k+1;j=n;j++)

{

me=me+A[k][j]*x[j];

}

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

}

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

{

}

}

voidexchange(intr,intk)//交换行的矩函数

{

inti;

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

A[0][i]=A[r][i];

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

A[r][i]=A[k][i];

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

A[k][i]=A[0][i];

}

floatmax(intk)//比校系数大小的函数

{

inti;

floattemp=0;

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

if(fabs(A[i][k])temp)

{

temp=fabs(A[i][k]);

flag=i;

}

returntemp;

}

3.运行结果:

截图如下:

文档评论(0)

135****5548 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地河南
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档