您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作计划 > 中南大学2011c++课程实践实践报告
1C++课程设计报告学生姓名:学生学号:所在班级:任课教师:2011年6月29日2【详细设计】必做题(1-5):1.某选矿车间某班取样化验数据如表1,利用矿量平衡和金属平衡可以列出含四个方程的线性方程组,请利用行线性变换编程求出各精矿及尾矿的理论产率。表1各矿流的化验品位-------------------------------矿产率化验品位%--------------------流%PbZnS-----------------------------------原矿100.003.0811.9214.58铅精矿x157.164.0821.19锌精矿x20.7956.5631.71硫精矿x32.062.9040.24尾矿x40.250.734.93-----------------------------------解:#includeiostream#includeiomanipusingnamespacestd;intmain(){/*构建方程组输入系数矩阵*/floata[4][5]={{1,1,1,1,100},{57.16,0.79,2.06,0.25,308},{4.08,56.56,2.90,0.73,1192},{21.19,31.71,40.24,4.93,1458}};floatt00=a[0][0],t10=a[1][0],t20=a[2][0],t30=a[3][0],t;for(intm=0;m5;m++){a[0][m]/=t00;a[1][m]-=(t10*a[0][m]);a[2][m]-=(t20*a[0][m]);a[3][m]-=(t30*a[0][m]);}if(a[1][1]==0)if(a[2][1]!=0)for(intr=0;r5;r++){t=a[1][r];a[1][r]=a[2][r];/*进行行变换求出逆矩阵*/a[2][r]=t;}elsefor(ints=0;s5;s++)3{t=a[1][s];a[1][s]=a[3][s];a[2][3]=t;}floatt11=a[1][1],t21=a[2][1],t31=a[3][1];for(intx=1;x5;x++){a[1][x]/=t11;a[2][x]-=(t21*a[1][x]);a[3][x]-=(t31*a[1][x]);}if(a[3][3]==0)for(inty=0;y5;y++){t=a[2][y];a[2][y]=a[3][y];a[3][y]=t;}floatt22=a[2][2],t32=a[3][2];for(intz=2;z5;z++){a[2][z]/=t22;a[3][z]-=a[2][z]*t32;}floatt33=a[3][3],t23=a[2][3],t13=a[1][3],t03=a[0][3];for(intk=1;k5;k++){a[3][k]/=t33;a[2][k]-=(a[3][k]*t23);a[1][k]-=(a[3][k]*t13);a[0][k]-=(a[3][k]*t03);}floatt12=a[1][2],t02=a[0][2];for(intl=1;l5;l++){a[1][l]-=(a[2][l]*t12);a[0][l]-=(a[2][l]*t02);}floatt01=a[0][1];for(inth=1;h5;h++){a[0][h]-=(a[1][h]*t01);}4cout铅精矿理论产率为:a[0][4]%endl;cout锌精矿理论产率为:a[1][4]%endl;cout硫精矿理论产率为:a[2][4]%endl;cout尾矿理论产率为:a[3][4]%endl;return0;/*输出结果*/}2.因变量y是自变量x的非线性函数,已得到实测数据见表2,假定y可以用x的3次多项式近似表示,即y对x的多项式回归模型为y=b0+b1x+b2x2+b3x3请求出模型蚕数b0、b1、b2和b3,计算模型值ym与相对误差r%并填入表2中。表2实测数据------------------------------xyymr%-------------------------------4-210-2-2001.12505590-------------------------------解:#includeiostream#includeiomanip5usingnamespacestd;intmain(){printf(请输入数据:\n);floata[4][5],b[4][6],d[6][5]={},c[6][2];inti,j,r;for(i=0;i6;i++)for(j=0;j5;j++){if(j!=4){d[i][0]=1;d[i][1]=i;d[i][2]=i*i;/*构建系数矩阵*/d[i][3]=i*i*i;}}d[-4][4]=-210;d[-2][4]=-20;d[0][4]=1.1;d[2][4]=50;d[5][4]=590;for(i=0;i6;i++){for(j=0;j5;j++)printf(%8.4f,d[i][j]);printf(\n);}for(i=0;i4;i++){for(j=0;j6;j++)b[i][j]=d[j][i];/*利用最小二乘法求出相关矩阵*/}for(i=0;i4;i++)for(j=0;j5;j++){a[i][j]=0;for(r=0;r6;r++)a[i][j]+=b[i][r]*d[r][j];}floatt00=a[0][0],t10=a[1][0],t20=a[2][0],t30=a[3][0],t;for(r=0;r5;r++){a[0][r]/=t00;a[1][r]-=(t10*a[0][r]);a[2][r]-=(t20*a[0][r]);a[3][r]-=(t30*a[0][r]);}if(a[1][1]==0)if(a[2][1]!=0)for(r=0;r5;r++){6t=a[1][r];a[1][r]=a[2][r];a[2][r]=t;}elsefor(r=0;r5;r++){t=a[1][r];a[1][r]=a[3][r];a[2][3]=t;}floatt11=a[1][1],t21=a[2][1],t31=a[3][1];for(r=1;r5;r++){a[1][r]/=t11;a[2][r]-=(t21*a[1][r]);a[3][r]-=(t31*a[1][r]);}if(a[3][3]==0)for(r=0;r5;r++){t=a[2][r];a[2][r]=a[3][r];a[3][r]=t;}floatt22=a[2][2],t32=a[3][2];for(r=2;r5;r++){a[2][r]/=t22;a[3][r]-=a[2][r]*t32;}floatt33=a[3][3],t23=a[2][3],t13=a[1][3],t03=a[0][3];for(r=1;r5;r++){a[3][r]/=t33;a[2][r]-=(a[3][r]*t23);a[1][r]-=(a[3][r]*t13);a[0][r]-=(a[3][r]*t03);}floatt12=a[1][2],t02=a[0][2];for(r=1;r5;r++){a[1][r]-=(a[2][r]*t12);a[0][r]-=(a[2][r]*t02);}floatt01=a[0][1];for(r=1;r10;r++){a[0][r]-=(a[1][r]*t01);}for(i=0;i6;i++){7c[i][0]=0;for(j=0;j4;j++){c[i][0]+=(a[j][4]*d[i][j]);}c[i][1]=(100*(c[i][0]-d[i][4]))/c[i][0];if(c[i][1]0)c[i][1]=0-c[i][1];}printf(\nb1=%2.2f%\n,a[0][4]);printf(b2=%2.2f%\n,a[1][4]);printf(b3=%2.2f%\n,a[2][4]);printf(b4=%2.2f%\n,a[3][4]);printf(---------------------------------\n);printf(xyymr%c\n,37);printf(---------------------------------\n);printf(-4-210%4.2f%4.2f\n,c[0][0],c[0][1]);printf(-2-20%4.2f%4.2f\n,c[1][0],c[1][1]);printf(01.1%4.2f%4.2f\n,c[2][0],c[2][1]);printf(250%4.2f%4.2f\n,c[3][0],c[3][1]);printf(5590%4.2f%4.2f\n,c[4][0],c[4][1]);printf(---------------------------------\n);return(0);}3.请用行线性变换求下面三元一次线性方程组的解和系数矩阵的逆矩阵。8-x1+x2+x3=13x1-x2+x3=9x1+x2-x3=1解:#includeiostreamusingnamespacestd;intmain(){floata[3][4]={-1,1,1,13,1,-1,1,9,1,1,-1,1},b[3][6],l,m,n,x,y,z;inti,j;for(i=0;i3;i++){for(j=0;j6;j++)if(j3)b[i][j]=a[i][j];elseif(j2&&i+3==j)/*在系数矩阵右边生成一个单位矩阵*/b[i][j]=1;elseb[i][j]=0;}for(j=0;j4;j++)/*求出方程的解*/{l=a[0][j];m=a[1][j];n=a[2][j];l=(a[0][j]+a[2][j])/2;m=(a[1][j]+a[2][j])/2;n=l+m-a[2][j];a[0][j]=m;a[1][j]=l;a[2][j]=n;}for(j=0;j6;j++)/*求出逆矩阵*/{x=b[0][j];y=b[1][j];z=b[2][j];x=(b[0][j]+b[2][j])/2;y=(b[1][j]+b[2][j])/2;z=x+y-b[2][j];b[0][j]=y;b[1][j]=x;b[2][j]=z;}cout方程组:endl;cout-x1+x2+x3=13\nx1-x2+x3=9\nx1+x2-x3=1endl;cout的解为:\nx1=a[0][3]\nx2=a[1][3]\nx3=a[2][3]endl;9cout系数的逆矩阵为:endl;for(i=0;i3;i++){for(j=3;j6;j++){coutb[i][j];}cout\nendl;}return0;}4.在表1中增加两种组分的化验品位如表3,可以列出六个线性方程,显然是矛盾的方程组,请用最小二乘法求精/尾矿产率的最小二乘解,并填入表3相应位置。(矿物专业必做,生物专业可选)表3各矿流的化验品位---------------------------------------------矿产化验品位%率-------------------------------流%PbZnSFeCd---------------------------------------------原矿100.003.0811.9214.589.320.0162铅精矿x157.164.0821.1910.260.
本文标题:中南大学2011c++课程实践实践报告
链接地址:https://www.777doc.com/doc-2784501 .html