java求实对称矩阵特征值 如题,给代码或者给思路,都可以。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.applet.Applet;import java.awt.Graphics;public class jaccobi extends Applet{public void myjaccobimat(double [][] a,double [][] J,int n,double eps){ double t,s,c,max,temp; int i,j,p,q; double [] b1= new double[n]; double [] b2= new double[n]; for(i=0;i<n;i++) for(j=0;j<n;j++) { if(i==j) J[i][j]=1; else J[i][j]=0; } while(true) { max=0;p=0;q=0; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) { temp=Math.abs(a[i][j]); if(temp>max) { max=temp; p=i; q=j; } } if(max<eps) break; t=(a[p][p]-a[q][q])/a[p][q]; if(t==0) c=s=Math.sqrt(2)/2; else { if(t<0) t=-1.0/(-t+Math.sqrt(1+t*t)); else t=1.0/(t+Math.sqrt(1+t*t)); c=1.0/Math.sqrt(1+t*t); s=t*c; } for(i=0;i<n;i++) { if(i==p) b1[i]=a[p][p]*c*c+a[q][q]*s*s+a[p][q]*2*s*c; else if(i==q) b1[i]=(a[q][q]-a[p][p])*s*c+a[p][q]*(2*c*c-1); else b1[i]=a[i][p]*c+a[i][q]*s; } for(i=0;i<n;i++) { if(i==p) b2[i]=b1[q]; else if(i==q) b2[i]=a[p][p]*s*s+a[q][q]*c*c-a[p][q]*2*s*c; else b2[i]=-a[i][p]*c+a[i][q]*c; } for(i=0;i<n;i++) { a[i][p]=a[p][i]=b1[i]; a[i][q]=a[q][i]=b2[i]; } for(i=0;i<n;i++) { b1[i]=J[i][p]*c+J[i][q]*s; b2[i]=-J[i][p]*s+J[i][q]*c; } for(i=0;i<n;i++) { J[i][p]=b1[i]; J[i][q]=b2[i]; } }} public void paint (Graphics g){ double [][] a={{1,Math.sqrt(2),2},{Math.sqrt(2),3,Math.sqrt(2)},{2,Math.sqrt(2),1}}; double [][] J=new double[3][3]; double eps=0.00000001; myjaccobimat(a,J,3,eps); g.drawString(" 特征值"+a[0][0]+"和"+a[1][1]+"和"+a[2][2], 10,20); }}从网上找的,不知道对不对 计算器开发四则运算计算过程中得到最后操作符后,前一个操作符的值为null 数组排序的一个小程序 java 多少年才算是资深 初学java 一个问题 奇怪的servlet问题,请大家帮忙看看,谢谢。 我用是WIN2K,装了J2SDJ1.4.2 和 EditPlus,我怎么设置环境变量?(里面是CSDN上大侠讲的) 寻找java小程序 java servlet 与 nio socket问题,hlep me !!!!!! ·····进门就送分!····· 如何运行一个包含多国语言的SQL语句 Think in java 源码 [?] 透明窗口 二维数组
import java.applet.Applet;
import java.awt.Graphics;public class jaccobi extends Applet
{
public void myjaccobimat(double [][] a,double [][] J,int n,double eps)
{
double t,s,c,max,temp;
int i,j,p,q;
double [] b1= new double[n];
double [] b2= new double[n];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
J[i][j]=1;
else J[i][j]=0;
}
while(true)
{
max=0;p=0;q=0;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
temp=Math.abs(a[i][j]);
if(temp>max)
{
max=temp;
p=i;
q=j;
}
}
if(max<eps) break;
t=(a[p][p]-a[q][q])/a[p][q];
if(t==0)
c=s=Math.sqrt(2)/2;
else
{
if(t<0)
t=-1.0/(-t+Math.sqrt(1+t*t));
else
t=1.0/(t+Math.sqrt(1+t*t));
c=1.0/Math.sqrt(1+t*t);
s=t*c;
}
for(i=0;i<n;i++)
{
if(i==p)
b1[i]=a[p][p]*c*c+a[q][q]*s*s+a[p][q]*2*s*c;
else if(i==q)
b1[i]=(a[q][q]-a[p][p])*s*c+a[p][q]*(2*c*c-1);
else
b1[i]=a[i][p]*c+a[i][q]*s;
}
for(i=0;i<n;i++)
{
if(i==p)
b2[i]=b1[q];
else if(i==q)
b2[i]=a[p][p]*s*s+a[q][q]*c*c-a[p][q]*2*s*c;
else
b2[i]=-a[i][p]*c+a[i][q]*c;
}
for(i=0;i<n;i++)
{
a[i][p]=a[p][i]=b1[i];
a[i][q]=a[q][i]=b2[i];
}
for(i=0;i<n;i++)
{
b1[i]=J[i][p]*c+J[i][q]*s;
b2[i]=-J[i][p]*s+J[i][q]*c;
}
for(i=0;i<n;i++)
{
J[i][p]=b1[i];
J[i][q]=b2[i];
}
}
} public void paint (Graphics g)
{
double [][] a={{1,Math.sqrt(2),2},{Math.sqrt(2),3,Math.sqrt(2)},{2,Math.sqrt(2),1}};
double [][] J=new double[3][3];
double eps=0.00000001;
myjaccobimat(a,J,3,eps);
g.drawString(" 特征值"+a[0][0]+"和"+a[1][1]+"和"+a[2][2], 10,20);
}}从网上找的,不知道对不对