📄 example3_13.java
字号:
import java.applet.*;
import java.awt.*;
public class Example3_13 extends Applet
{ public static void grad(double[][] a,double[] b,double[] x,double eps)
{int i,j,k,n=b.length;
double[] p=new double[n];
double[] r=new double[n];
double[] ap=new double[n];
double temp1,temp2,alpha;
for(i=0;i<n;i++)
{r[i]=b[i];
for(j=0;j<n;j++)
r[i]-=a[i][j]*x[j];}
for(i=0;i<n;i++)p[i]=r[i];
temp2=0;
for(i=0;i<n;i++)
{temp2+=r[i]*r[i];}
for(k=0;k<n;k++)
{if(temp2<eps*eps)break;
alpha=temp1=temp2;
for(i=0;i<n;i++)
{ ap[i]=0;
for(j=0;j<n;j++)
ap[i]+=a[i][j]*p[j];
}
temp2=0;
for(i=0;i<n;i++)temp2+=ap[i]*p[i];
alpha/=temp2;
for(i=0;i<n;i++)
{x[i]+=alpha*p[i];
r[i]-=alpha*ap[i];}
temp2=0;
for(i=0;i<n;i++)temp2+=r[i]*r[i];
temp1=temp2/temp1;
for(i=0;i<n;i++)p[i]=r[i]+temp1*p[i];
}
}
public void paint(Graphics g)
{double[][] a={{5,7,6,5},{7,10,8,7},{6,8,10,9},{5,7,9,10}};
double[] b={1,2,3,4};
double[] x={0,0,0,0};
double eps=1e-7;
grad(a,b,x,eps);
for(int i=0;i<x.length;i++)
g.drawString("X"+i+"="+x[i],10,20*i+20);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -