首页 > 代码库 > 雅可比迭代法
雅可比迭代法
算法伪代码如下,有错误的话请给我指出来:
//假设所有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; } }
雅可比迭代法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。