⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gaosi.c

📁 计算方法实验报告
💻 C
字号:
#include<stdio.h>
#include<math.h>
#include<string.h>
#define M 3
#define N 4
void main()
{
	static float a[M+1][N+1]={{0,0,0,0,0},{0.0,-0.002,2.0,2.0,0.4},{0.0,1.0,0.78125,0.0,1.3816},
	{0.0,3.99,5.5625,4.0,7.4178}};
	float x[M+1]={0,0,0,0},y[M+1]={0,0,0,0};
	float r,e,t1;
	int i,j,k,p,q,t,l[M+1];
	for(i=1;i<=M;i++)
	{
		for(j=1;j<=N;j++)
			printf("a[%d][%d]%15f",i,j,a[i][j]);
		printf("\n");
	}
	printf("\n");
	for(i=0;i<=M;i++)
		l[i]=i;
	for(k=1;k<M;k++)
	{
		p=k;
		q=k;
		e=fabs(a[k][k]);
        for(i=k;i<=M;i++)
		{
			for(j=k;j<=M;j++)
				if(fabs(a[i][j])>e)
				{
					e=fabs(a[i][j]);
					p=i;
					q=j;
				}
		}
		t=l[k];
		l[k]=l[q];
		l[q]=t;
		for(j=1;j<=N;j++)
		{
			t1=a[k][j];
			a[k][j]=a[p][j];
			a[p][j]=t1;
		}
		for(i=1;i<=M;i++)
		{
			t1=a[i][k];
			a[i][k]=a[i][q];
			a[i][q]=t1;
		}
		if(a[k][k]!=0)
		{
			for(i=k+1;i<=M;i++)
			{
				if(a[i][k]!=0)
				{
					r=a[i][k]/a[k][k];
					for(j=k;j<=N;j++)
						a[i][j]=a[i][j]-r*a[k][j];
				}
			}
			
		}
		else
		{
			printf("高斯方法不起作用!!");
			break;
		}
	}
	for(i=1;i<=M;i++)
	{
		for(j=1;j<=N;j++)
			printf("a[%d][%d]%15f",i,j,a[i][j]);
		printf("\n");
	}
	printf("\n");
	y[M]=a[M][N]/a[M][M];
	q=l[M];
	x[q]=y[M];
	for(i=M-1;i>=1;i--)
	{
		t1=a[i][N];
		for(j=i+1;j<=M;j++)
			t1=t1-a[i][j]*y[j];
		y[i]=t1/a[i][j];
		q=l[i];
		x[q]=y[i];
	}

			for(i=1;i<=M;i++)
				printf("a[%d][%d]%15.7f\n",i,j,x[i]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -