@740340735
2016-01-11T12:24:00.000000Z
字数 2931
阅读 539
科学计算
陆一洲 5140309557
Matrix A(m,n);vector<double> b(m), idx(n);for (int i=0; i<m; i++){double tmp=Git<double>();b[i]=Git<double>();A[i][0]=1;for (int j=1; j<n; j++)A[i][j]=A[i][j-1]*tmp;}for (int i=0; i<n; i++) idx[i]=i;Matrix A0(A);vector<double> b0(b), x(M);Householder_Transformation(FLAG);for (int i=n-1; i>=0; i--){double tmp=b[i];for (int j=i+1; j<n; j++)tmp-=A[i][j]*x[j];x[i]=t/A[i][i];}vector<double> x0(x);for (int i=0; i<n; i++) x[idx[i]]=x0[i];for (int i=0; i<m; i++){b[i]=0;for (int j=0; j<n; j++)b[i]+=A0[i][j]*x[j];b[i]=b0[i]-b[i];}cout<<Norm(b)<<endl;
记 。
有主元后误差更大,其原因为对于 ,在 中 的系数比 大若干倍。所以计算时 产生的误差更大;
有主元操作时,可以先计算 再计算 。此时, 的误差会由于之前计算的累积误差被进一步放大,导致拟合结果变得更差。
