📄 shiyan6.txt
字号:
// 利用增广矩阵解最小二乘问题
public class AugmentedSystem {
public double[][] constructA(double[] t,double[] y,int n)
{
int tLength=t.length;
double[][] aa=new double[tLength][n];
for(int i=0;i<tLength;i++)
aa[i][0]=1;
for(int i=0;i<tLength;i++)
for(int j=1;j<n;j++)
aa[i][j]=aa[i][j-1]*t[i];
return aa;
}
public double[][] constructAugentArrary(double[][] aaa,int m,int n)
{
double[][] augentArrary=new double[m+n][m+n];
for(int i=0;i<m+n;i++)
for(int j=0;j<m+n;j++)
augentArrary[i][j]=0;
for(int i=0;i<m;i++)
augentArrary[i][i]=1;
for(int i=0;i<m;i++)
for(int j=m;j<m+n;j++)
augentArrary[i][j]=aaa[i][j-m];
for(int i=m;i<m+n;i++)
for(int j=0;j<m;j++)
augentArrary[i][j]=aaa[j][i-m];
return augentArrary;
}
public double[] AugmentedSystem (double[][] t,int m,double[] y,int n)
{
//int m=t.length;
//double[][] aaaa=this.constructA(t, y, n);
double[][] augentA=this.constructAugentArrary(t, m, n);
double[] xx=new double[m+n];
double[] yy=new double[m+n];
for(int i=0;i<m;i++)
yy[i]=y[i];
for(int i=m;i<m+n;i++)
yy[i]=0;
Gaussian rrrrr=new Gaussian();
xx=rrrrr.Gaussian(augentA, yy, m+n);
double[] x=new double[n];
for(int i=0;i<n;i++)
x[i]=xx[i+m];
return x;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -