public class MatrixEigenValue {
public static int Hessenberg(double[][] Matrix,int n,double[][]ret)
{
int i;
int j;
int k;
double temp;
int MaxNu;
n-=1;
for(k=1;k<=n-1;k++)
{
i=k-1;
MaxNu=k;
temp=Math.abs(Matrix[k][i]);
for(j=k+1;j<=n;j++)
{
if(Math.abs(Matrix[j][i])>temp)
{
MaxNu=j;
}
}
ret[0][0]=Matrix[MaxNu][i];
i=MaxNu;
if(ret[0][0]!=0)
{
if(i!=k)
{
for(j=k-1;j<=n;j++)
{
temp=Matrix[i][j];
Matrix[i][j]=Matrix[k][j];
Matrix[k][j]=temp;
}
for(j=0;j<=n;j++)
{
temp=Matrix[j][i];
Matrix[j][i]=Matrix[j][k];
Matrix[j][k]=temp;
}
}
for(i=k+1;i<=n;i++)
{
temp=Matrix[i][k-1]/ret[0][0];
Matrix[i][k-1]=0;
for(j=k;j<=n;j++)
{
Matrix[i][j]-=temp*Matrix[k][j];
}
for(j=0;j<=n;j++)
{
Matrix[j][k]+=temp*Matrix[j][i];
}
}
}
}
for(i=0;i<=n;i++)
{
for(j=0;j<=n;j++)
{
ret[i][j]=Matrix[i][j];
}
}
return n+1;
}
public static boolean EigenValue(double[][]Matrix,int n,int LoopNu,int Erro,double[][]Ret)
{
int i=Matrix.length;
if(i!=n)
{
return false;
}
int j;
int k;
int t;
int m;
double[][]A=new double[n][n];
double erro=Math.pow(0.1, Erro);
double b;
double c;
double d;
double g;
double xy;
double p;
double q;
double r;
double x;
double s;
double e;
double f;
double z;
double y;
int loop1=LoopNu;
Hessenberg(Matrix,n,A);//将方阵K1转化成上Hessenberg矩阵A
m=n;
while(m!=0)
{
t=m-1;
while(t>0)
{
if(Math.abs(A[t][t-1])>erro*(Math.abs(A[t-1][t-1])+Math.abs(A[t][t])))
{
t-=1;
}
else
{
break;
}
}
if(t==m-1)
{
Ret[m-1][0]=A[m-1][m-1];
Ret[m-1][1]=0;
m-=1;
loop1=LoopNu;
}
else if(t==m-2)
{
b=-(A[m-1][m-1]+A[m-2][m-2]);
c=A[m-1][m-1]*A[m-2][m-2]-A[m-1][m-2]*A[m-2][m-1];
d=bb-4c;
y=Math.pow(Math.abs(d), 0.5);
if(d>0)
{
xy=1;
if(b<0)
{
xy=-1;
}
Ret[m-1][0]=-(b+xy*y)/2;
Ret[m-1][1]=0;
Ret[m-2][0]=c/Ret[m-1][0];
Ret[m-2][1]=0;
}
else
{
Ret[m-1][0]=-b/2;
Ret[m-2][0]=Ret[m-1][0];
Ret[m-1][1]=y/2;
Ret[m-2][1]=-Ret[m-1][1];
}
m-=2;
loop1=LoopNu;
}
else
{
if(loop1<1)
{
return false;
}
loop1-=1;
j=t+2;
while(j<m)
{
A[j][j-2]=0;
j+=1;
}
j=t+3;
while(j<m)
{
A[j][j-3]=0;
j+=1;
}
k=t;
while(k<m-1)
{
if(k!=t)
{
p=A[k][k-1];
q=A[k+1][k-1];
if(k!=m-2)
{
r=A[k+2][k-1];
}
else
{
r=0;
}
}
else
{
b=A[m-1][m-1];
c=A[m-2][m-2];
x=b+c;
y=c*b-A[m-2][m-1]*A[m-1][m-2];
p=A[t][t]*(A[t][t]-x)+A[t][t+1]*A[t+1][t]+y;
q=A[t+1][t]*(A[t][t]+A[t+1][t+1]-x);
r=A[t+1][t]*A[t+2][t+1];
}
if(p!=0||q!=0||r!=0)
{
if(p<0)
{
xy=-1;
}
else
{
xy=1;
}
s=xyMath.pow(pp+qq+rr, 0.5);
if(k!=t)
{
A[k][k-1]=-s;
}
e=-q/s;
f=-r/s;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
感受:
其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
也祝愿各位同学,都能找到自己心动的offer。
分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
也祝愿各位同学,都能找到自己心动的offer。
分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档
[外链图片转存中…(img-dwzJcIGI-1713128919491)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
版权声明:本文为博主作者:一条小尾鱼原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/m0_75232472/article/details/137762178