power.cpp

来自「幂法: 程序中把循环变量定义为循环20次」· C++ 代码 · 共 55 行

CPP
55
字号
// power.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<math.h>
#include<conio.h>

void main()
{
	float a[20][22],u[20],v[20],max=-200;    //a存放矩阵 u为规范化向量,max存放max(Vk)
	int i,j,k,n;
	printf("*****************************************************\n");
	printf("*                     幂    法                      *\n");
	printf("*****************************************************\n");
	printf("输入矩阵的行列数:");
	scanf("%d",&n);
	printf("输入矩阵:\n");
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			scanf("%f",&a[i][j]);
	printf("输入初值:\n");
	for(i=0;i<n;i++)
		scanf("%f",&u[i]);
	for(k=1;k<=20;k++)
	{
		printf("%2d  ",k);
		for(i=0;i<n;i++)
		{
			v[i]=0;
			for(j=0;j<n;j++)
				v[i]+=a[i][j]*u[j];
		}
		for(i=0;i<n;i++)
			if(v[i]>max)max=v[i];
		for(i=0;i<n;i++)
		{
			u[i]=v[i]/max;
			printf("%.4f   ",u[i]);
		}
		printf("%.7f\n",max);
		if(k==20)break;
		else max=-200;
	}
	printf("\n主特征值λ≈%.7f\n",max);
	printf("\n主特征向量为:(");
	for(i=0;i<n-1;i++)printf("%.4f   ",u[i]);
	printf("%.4f)\n",u[i]);
	printf("\n");
	printf("      ╲︿⌒.︵︵,_.\n");
	printf("      (          )\n");
	printf("       ︶~︶ˋ~︺︶ ╲  ........ BY 云\n\n\n");
}


⌨️ 快捷键说明

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