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

📄 example2_1.java

📁 清华大学2002年出版的《科学与工程数值计算算法Java》配套源码
💻 JAVA
字号:
import java.applet.*;
import java.awt.*;
class Complex
{ double real,image;
  public static void init(double a,double b,Complex c)
  {c.real=a;c.image=b;}
  public static void jia(Complex a,Complex b,Complex c)
  { c.real=a.real+b.real;
	c.image=a.image+b.image;
  }

  public static void jian(Complex a,Complex b,Complex c)
  { c.real=a.real-b.real;
  	c.image=a.image-b.image;
  }
  public static void cheng(Complex a,Complex b,Complex c)
  { double p,q,s;
    c.real=a.real*b.real-a.image*b.image;
    c.image=a.real*b.image+a.image*b.real;
  }
  public static void chu(Complex a,Complex b,Complex c)
  { double w;
    if(Math.abs(b.real)>Math.abs(b.image))
    {w=b.real+b.image*(b.image/b.real);
     c.real=(a.real+a.image*(b.image/b.real))/w;
     c.image=(a.image-a.real*(b.image/b.real))/w;
    }
    else
	{w=b.real*(b.real/b.image)+b.image;
	 c.real=(a.real*(b.real/b.image)+a.image)/w;
	 c.image=(a.image*(b.real/b.image)-a.real)/w;
    }
 }
 public static void equal(Complex a,Complex b)
 {a.real=b.real;a.image=b.image;}
}

public class Example2_1 extends Applet
{ public void Mjia(double[][] a,double[][] b,double[][] c,int m,int n)
  {int i,j;
   for(i=0;i<m;i++)
    for(j=0;j<n;j++)c[i][j]=a[i][j]+b[i][j];
	  }
  public void Mjian(double[][] a,double[][] b,double[][] c,int m,int n)
  {int i,j;
   for(i=0;i<m;i++)
    for(j=0;j<n;j++)c[i][j]=a[i][j]-b[i][j];
	  }

 public void Mshucheng(double[][] a,double lambda,int m,int n)
 {int i,j;
   for(i=0;i<m;i++)
    for(j=0;j<n;j++)a[i][j]*=lambda;
	 }
  public void Mtrans(double[][] a,double[][] b,int m,int n)
  {int i,j;
   for(i=0;i<n;i++)
    for(j=0;j<m;j++)b[i][j]=a[j][i];
  }
  public void Mrcheng(double[][] a,double[][] b,double[][]c,int m,int n,int l)
  {double[][] d=new double[m][l];
   int i,j,k;
   for(i=0;i<m;i++)
     for(j=0;j<l;j++)
      {d[i][j]=0;
       for(k=0;k<n;k++)d[i][j]+=a[i][k]*b[k][j];}
  for(i=0;i<m;i++)
   for(j=0;j<l;j++)
    c[i][j]=d[i][j];
}
 public void Mccheng(Complex[][] a,Complex[][] b,Complex[][] c,int m,int n,int l)
 {Complex[][] d=new Complex[m][l];
  Complex temp=new Complex();
  int i,j,k;
  for(i=0;i<m;i++)
   for(j=0;j<l;j++)
   {d[i][j]=new Complex();
    for(k=0;k<n;k++){Complex.cheng(a[i][k],b[k][j],temp);Complex.jia(d[i][j],temp,d[i][j]);}
   }
  for(i=0;i<m;i++)
   for(j=0;j<l;j++)
    Complex.equal(c[i][j],d[i][j]);
}

public void paint(Graphics g )
{double[][] a={{1,2,3},{4,2,3,},{4,1,3},{4,1,2}};
 double[][] b={{5,6},{7,8},{9,10}};
 double[][] c={{1,3},{2,4},{5,7}};
 double[][] d={{11,12},{13,14},{15,16},{17,18}};
 double[][] e=new double[4][2];
 int i,j,k;
 g.drawString("矩阵A=",10,20);
 g.drawString(""+a[0][0]+"  "+a[0][1]+"  "+a[0][2],10,40);
 g.drawString(""+a[1][0]+"  "+a[1][1]+"  "+a[1][2],10,60);
 g.drawString(""+a[2][0]+"  "+a[2][1]+"  "+a[2][2],10,80);
 g.drawString(""+a[3][0]+"  "+a[3][1]+"  "+a[3][2],10,100);
 g.drawString("矩阵B=",10,120);
 g.drawString(""+b[0][0]+"  "+b[0][1],10,140);
 g.drawString(""+b[1][0]+"  "+b[1][1],10,160);
 g.drawString(""+b[2][0]+"  "+b[2][1],10,180);
 g.drawString("矩阵C=",10,200);
 g.drawString(""+c[0][0]+"  "+c[0][1],10,220);
 g.drawString(""+c[1][0]+"  "+c[1][1],10,240);
 g.drawString(""+c[2][0]+"  "+c[2][1],10,260);
 g.drawString("矩阵D=",10,280);
 g.drawString(""+d[0][0]+"  "+d[0][1],10,300);
 g.drawString(""+d[1][0]+"  "+d[1][1],10,320);
 g.drawString(""+d[2][0]+"  "+d[2][1],10,340);
 g.drawString(""+d[3][0]+"  "+d[3][1],10,360);
 Mjian(b,c,b,3,2);Mrcheng(a,b,e,4,3,2);Mjia(e,d,e,4,2);
 g.drawString("A*(B-C)+D=",10,380);
 g.drawString(""+e[0][0]+"  "+e[0][1],10,400);
 g.drawString(""+e[1][0]+"  "+e[1][1],10,420);
 g.drawString(""+e[2][0]+"  "+e[2][1],10,440);
 g.drawString(""+e[3][0]+"  "+e[3][1],10,460);
 }

}

⌨️ 快捷键说明

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