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

📄 cg.txt

📁 数值计算CG算法函数
💻 TXT
字号:
//CG算法
function CG(X0:Array,myMat:Array,myResult:Array,n:Number,myErr:Number):Number
{   
  //x0为初始迭代向量,myMat为增广阵,myResult记录中间迭代结果,myErr为最小误差

	var counter:Number =1;//存储迭代次数
	
	var RF1:Number;
	var RF2:Number;
	var err:Number=0.0;
	 var AP:Array=new Array(7);
	
	for(var i=1;i<=n;i++)
	{
		myResult[1][i]=X0[i];
	}
	
	for(var i=1;i<=n;i++)
	{ 
	    myResult[2][i]=0.00;
		myResult[3][i]=0.00;
		for(var j=1;j<=n;j++)
			myResult[2][i]=myResult[2][i]+myMat[i][j]*X0[j];
		
		myResult[2][i]=myMat[i][n+1]-myResult[2][i];
		myResult[3][i]=myResult[2][i];
		err=err+myResult[2][i]*myResult[2][i];
	}
	
	while(1)
	{
		if(counter>20||Math.sqrt(Math.abs(err))<myErr)
		    break;
			
	     RF1=0.0;
		 for(var i=1;i<=n;i++)
		    RF1=RF1+myResult[(counter-1)*3+2][i] * myResult[(counter-1)*3+2][i];
       
	     for(var i=1;i<=n;i++)
	    { 
	         AP[i]=0.00;
		     for(var j=1;j<=n;j++)
		       AP[i]=AP[i]+myMat[i][j]*myResult[(counter-1)*3+3][j];
			
	     }
		
		 RF2=0.00;
	     for(var i=1;i<=n;i++)
	          RF2=RF2+AP[i]*myResult[(counter-1)*3+3][i];
	  
		myResult[(counter-1)*3+1][n+1]=RF1/RF2;
	     //计算xk+1=xk+ap;
	     for(var i=1;i<=n;i++)
	       myResult[counter*3+1][i]=myResult[(counter-1)*3+1][i]+ myResult[(counter-1)*3+1][n+1] * myResult[(counter-1)*3+3][i];
	      
	     //计算rk+1=rk-ak*Apk;
	     for(var i=1;i<=n;i++)
		    myResult[counter*3+2][i]=myResult[(counter-1)*3+2][i] - myResult[(counter-1)*3+1][n+1] * AP[i];
	    
		 myResult[(counter-1)*3+2][n+1]=0.0;
		 
	     for(var i=1;i<=n;i++)
		     myResult[(counter-1)*3+2][n+1]=myResult[(counter-1)*3+2][n+1] + myResult[counter*3+2][i] * myResult[counter*3+2][i];
	   
	     err= myResult[(counter-1)*3+2][n+1];
       	 myResult[(counter-1)*3+3][n+1]=err/RF1;
	
	    for(var i=1;i<=n;i++)
	          myResult[counter*3+3][i]=myResult[counter*3+2][i] + myResult[(counter-1)*3+3][i] * myResult[(counter-1)*3+3][n+1];
	   
	   counter++;
	}
	return counter;
}
//CG算法

⌨️ 快捷键说明

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