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

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

ID:38700652

大小:80.50 KB

页数:6页

时间:2019-06-17

数值分析c语言实现高斯赛德尔解法_第1页
数值分析c语言实现高斯赛德尔解法_第2页
数值分析c语言实现高斯赛德尔解法_第3页
数值分析c语言实现高斯赛德尔解法_第4页
数值分析c语言实现高斯赛德尔解法_第5页
资源描述:

《数值分析c语言实现高斯赛德尔解法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数值分析程序设计学院:计算机学院姓名:袁薪洋1.实验目的:1熟练掌握C语言程序设计,编程求解问题。2.运用高斯-赛德尔迭代公式求解线性方程组。2.实验内容:用高斯-赛德尔迭代公式求解方程组。10x1-x2-2x3=7.2-x1+10x2-2x3=8.3-x1-x2+5x3=4.2程序的核心代码:#include"math.h"#include#defineNUMBER20floatA[NUMBER][NUMBER+1];floatark;intflag,n;voidexchan

2、ge(intr,intk);floatmax(intk);voidmain(){floatx[NUMBER];/*此数组用于存放方程解*/intr,k,i,j;printf("***********************************");printf("用高斯-赛德尔迭代法解线性方程组");printf("***********************************");printf("请输入方程组的维数:n=");scanf("%d",&n);p

3、rintf("请输入系数矩阵A和向量b:");for(i=1;i<=n;i++){printf("请输入a%d1--a%d%d系数和向量b%d(数之间用空格格开):",i,i,n,i);//实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定for(j=1;j<=n+1;j++)//将刚才输入的数存入数组scanf("%f",&A[i][j]);}for(k=1;k<=n-1;k++){ark=max(k);if(ark==0)//判断方程是否为线性方程{pri

4、ntf("此方程组不合法!");}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

5、][k];}for(i=1;i<=n;i++){printf("x%d=%f",i,x[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

6、<=n;i++)if(fabs(A[i][k])>temp){temp=fabs(A[i][k]);flag=i;}returntemp;}3.运行结果:截图如下:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。