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

📄 example3_9.java

📁 Java学习丛书科学与工程数值算法(Java版)一书的代码
💻 JAVA
字号:
import java.applet.*;
import java.awt.*;
public class Example3_9 extends Applet
{
 public static boolean cholesky(double[][] a,double[] b,int n)
  { int i,j,k;
	 for(j=0;j<n;j++)
	   {//计算l[j][j]
		for(k=0;k<j;k++)a[j][j]-=a[j][k]*a[j][k];
	    if(a[j][j]<=0)return false;
	    a[j][j]=Math.sqrt(a[j][j]);
	    //计算l[i][j]
	    for(i=j+1;i<n;i++)
	     {for(k=0;k<j;k++)a[i][j]-=a[i][k]*a[j][k];
		  a[i][j]/=a[j][j];}
	    }
	 //求解Ly=b;
    for(i=0;i<n;i++)
    { for(k=0;k<i;k++)b[i]-=a[i][k]*b[k];
      b[i]/=a[i][i]; }
    //求解LTx=y
    for(i=n-1;i>=0;i--)
    {for(k=i+1;k<n;k++)b[i]-=a[k][i]*b[k];
     b[i]/=a[i][i];}
    return true;
  }

  public void paint(Graphics g)
  { double[][] a={{16,4,8},{4,5,-4},{8,-4,22}};
    double[] b={-4,-3,10};
    int i;
    if(!cholesky(a,b,3))
      g.drawString("系数矩阵不是正定阵",10,20);
    else
      { for(i=0;i<3;i++)
        g.drawString("X"+i+"="+b[i],10,i*20+20);
      }
  }
}

⌨️ 快捷键说明

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