资源描述:
《数值分析结课习题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、源代码:Sincludc^include#include★include#defineMAX」100数值分析试题1、一篇关于病态方程的英文文献(附后)2、高斯•赛德尔法解线性方程组8%]-3兀2+2®=20v4兀]+1lx2-lx3=33,6%!+3x2+12x3=36ttdcfincPRECISION0.0000001#defineMAX_Number1000voidVectorinput(floatx[],intn)//输入初始向量{inti;for(i=l;i<=n;++i)
2、{printf(/,x[%d]=z/,i);scanf(z/%fz/,&x[i]);}}voidMatrixinput(floatA[][MAX_n],intm,intn)//输入增广矩阵{~inti,j;printf(z,二二二BegininputMatrixelements二二二〃);for(i=l;i<=m;++i){printf(z,Input_Line%d:“,i);for(j=l;j<=n;++j)scanf(z,%f,z,&A[i][j]);}}voidVectorOutput(floatx[],intn)//输出向量{inti;
3、for(i=l;i<=n;++i)printf("x[%d]=%f",i,x[i]);}intIsSatisfyPricision(floatxl[],floatx2[],intn)//判断是否在规定精度内{inti;for(i=l;i<=n;++i)if(fabs(xl[i]-x2[i])'PRECISION)returnreturn0;}intJacobi_(floatA[][MAXn],floatx[],intn){floatxformer[MAXn];inti,j,k;printf("InputvectorxO:〃);Vectori
4、nput(x,n);k二0;do{for(i=l;i<=n;++i){printf("x[%d]=%f",i,x[i]);x_former[i]=x[i];}"printf(〃〃);for(i=l;i<=n;++i){x[i]二A[i][n+1];for(j=l;jUn;++j)if(j!=i)x[i]-二A[i][j]*x[j];if(fabs(A[i][iJ)>PREC1S10N)x[i]/=A[i][i];elsereturn1;}++k;}while(IsSatisfyPricision(x,x_former,n)&&if(k>=MAX
5、_Number)return1;else{printf(z,G-S%dtimes!z,,k);return0;}}intmain()//主函数1;〃具体计算k=MAX_n-l){printf(" 07nmust<%d!",MAX_n);exit(0);}Matrixinput(A,n,n+1);if(Jacobi(A,x,n))printf(z,G~SFailed
6、!z,);else{printf(z,0utputSolution:");VectorOutput(x,n);}printf(" 07Pressanykeytoquit!,z);getchO;}CH3G^233运行结果:•F:JR用J38Debugshiyanwu.exe-x(l】・3・00(网2x(21-l.999999x[3)-0.999999x(lJ-3・000000x(2)・2・00P0B0x[3)-1.000000x【l】・3・000000xl2)・2・000000x(3J-1.000000G-S10tines?Out
7、putSolution:x(l)・3・000000x(2)・2・B0000Bx【3J・l・Pressanykeytoquit!3、利用拉格朗日插值法进行数据计算,用matlab编写,并且运算结果。已知函数表如下:X0.10.20.30.40.50.6sinx0.099830.198670.295520.389420.479430.56464计算sin(0.12)的值源代码:#ineludevoidmain(){floatx[6]={0.1,0.2,0.3,0.4,0.5,0.6};intn,k,j;floatf[6]二{0.09983
8、,0.19867,0.29552,0.38942,0.47943,0.56464};float