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

📄 diedai.cpp

📁 通过C语言编程实现数值计算方法中的雅可比迭代
💻 CPP
字号:
#include <stdio.h>
#define N 4
void main()
{
 float a[N][N];
 float b[N];
 float x[N], y[N], m[N];
 float m1,m2;
 int i,j,k,l,p,s;
 m1 = 0; m2 =0;
 for(i=0; i<N; i++)
 {x[i] = 0;
  y[i] = 0;
 m[i] =0;}
 printf("input a[N][N]\n");
 for(i=0; i<N; i++)
    for(j=0; j<N; j++)
		scanf("%f", &a[i][j]);
 printf("input b[N]\n");
 for(i=0; i<N; i++)
     scanf("%f",&b[i]);
 printf("方程组是:\n");
 for(i=0; i<N; i++)
    for(j=0; j<N; j++)
	{if((j==0 && a[i][j] !=0) || a[i][j] < 0)
	 printf("%.2fX%d",a[i][j],j+1);
	 else if(a[i][j] > 0)
     printf("+%.2fX%d",a[i][j],j+1);
     else if(a[i][j] == 0)
     printf(" ");
	 if(j==N-1)
	 {printf("= %.2f\n",b[i]);}
 }

 printf("请输入迭代次数k:\n");
      scanf("%d",&k);
 for(l=0; l<k; l++)
 {  
 
     printf("第%d次迭代的结果是:\n",l);
	 for(i=0; i<N; i++)
     {   
	 for(p=0; p<N; p++)
	 x[p] = m[p];
	  
	 
	  for(j=0; j<=i-1; j++)
	   m1+=a[i][j]*x[j];
      for(j=i+1; j<N; j++)
	   m2+=a[i][j]*x[j];

	  y[i] = (b[i] - m1 -m2)/a[i][i];
      m1=0; m2=0;
      printf("y[%d] = %f\n", i,y[i]);
      
	  
  
     }
	 for(s= 0; s<N; s++)
	 {x[s] = y[s];
	  m[s] = y[s];
	 //printf("y= %f\n",x[s]);
	 
	 }
 }

 







}

⌨️ 快捷键说明

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