zoukankan      html  css  js  c++  java
  • 雅可比迭代和高斯赛德尔迭代

    image

    image

    image

    image

    image

    image

         算法伪代码如下,有错误的话请给我指出来:

    //假设所有a[i][i]都不是0,为0的话还不知道怎么办
    		输入系数于数组a[][];
    		输入常数于数组b[];
    		
    		//计算新系数于数组c[][]
    		for(int i=0; i<n; i++) {
    			c[i][n-1] = b[i]/a[i][i];
    		}
    		//不是n-1行,经过商议不处理,只是列数减1
    		for(int i=0; i<n; i++) {
    			for(int j=0; j<n-1; j++) {
    				if(i<j)
    					c[i][j] = -a[i][j+1]/a[i][i];
    				else if(i>j)
    					c[i][j] = -a[i][j]/a[i][i];
    				else
    					continue;
    			}
    		}	
    		//迭代100次,自己加上精度判断吧
    		//从向量形式可以看出,初试解为全0的话第一次解为c[i][n-1],如果为了省着一次时间的话可以先把
    		//这个复制给解数组 root[],再仔细看看会发现每次迭代的话都需要加上c[i][n-1]
    		while(T--) {
    			//k行
    			for(int j=0; j<n; j++) {
    				//n-1列,最后的c[i][n-1]到最后加上
    				int temp = 0;
    				for(int k=0; k<n-1; k++) {
    					if(j>k)
    						temp += c[j][k]*root[k];
    					else if(j<k)
    						temp += c[j][k]*root[k+1];
    					else
    						continue;
    				}
    				//再仔细看看会发现每次迭代的话都需要加上c[i][n-1]
    				root[j] += temp;
    				
    			}
    		}
  • 相关阅读:
    返回一个随机数组中的子数组中的数相加最大的和
    四则运算二之结果
    四则运算二
    UVA 11741 Ignore the Blocks
    UVA 1408 Flight Control
    UVA 10572 Black & White
    CF1138D(545,div2) Camp Schedule
    UVA 1214 Manhattan Wiring
    UVA 11270 Tiling Dominoes
    BZOJ 3261 最大异或和
  • 原文地址:https://www.cnblogs.com/hxsyl/p/4193868.html
Copyright © 2011-2022 走看看