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

📄 fanmi.cpp

📁 数值分析中反幂法c++程序的实现
💻 CPP
字号:
//二范数幂法
#include<iostream.h>
#include<math.h>
#include<stdio.h>
#include <iomanip.h>
void main()
{
	int i,j,k=0;
	double b1=0,b2=0,sum2,sum3,err,a[3][3]={{6,-12,6},{-21,-3,24},{-12,-12,51}},u[3]={1,0,0},y[3];
	while (err>0.0001||k==0)
	{sum2=0;
	b2=0;
		for (i=0;i<=2;i++)
		{
	     sum2=sum2+u[i]*u[i];       //u(k-1)的二范数
		}
		sum2=sqrt(sum2);
	     for (i=0;i<=2;i++)          //u(k-1)的单位化矩阵
		 {y[i]=u[i]/sum2;
		 }
    	for (i=0;i<=2;i++)
		{sum3=0;
			for (j=0;j<=2;j++)
			{sum3=sum3+a[i][j]*y[j];     //u(k)
			}
			u[i]=sum3; 
		}
	    for (i=0;i<=2;i++)
		{b2=b2+y[i]*u[i];
		}
        err=fabs((b2-b1)/b2);          //呗他
	    b1=b2;
        k=k+1;
		cout<<"u("<<k<<"):";
		for (i=0;i<=2;i++)
			cout<<setprecision(16)<<u[i]<<"  ";
		cout<<endl<<"y("<<k-1<<"):";
		for (i=0;i<=2;i++)
			cout<<setprecision(16)<<y[i]<<"  ";
			cout<<endl;
		    cout<<"b2:"<<b2<<endl;				
	}
getchar();
}

⌨️ 快捷键说明

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