版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计
实验报告学院:资源加工与生物工程专业:无机非金属材料工程班级:0501姓名:金光龙学号:0302050107指导老师:金胜明制作日期05年7月9日C语言程序设计说明书目录一 程序设计目的及任务;二 程序设计的内容;三 源程序;四 程序说明;五 实践心得;程序设计目的及任务1、学会数据文件的建立在实验室试验和现场生产过程中,经常要存储、处理许多数据(试验数据和生产数据),在没有在线检测的条件下,这些数据都要进行人工的输入,建立数据文件。以前,我们都是编写建立数据文件的程序来建立数据文件,当某个数据输入错误时就要重新输入或编写数据文件修改程序,比较麻烦。直接在编辑状态下(TC,TP等)编写数据文件简单、直观、实用。2、理解并且学会运用文件操作函数3、学会用线性回归法建立数学模型二 程序设计的内容一、 数据文件.文件操作函数: 「 「 ' 「 「 「(1)文件的打开fopen#include<stdio.h>FILE*fopen(char*filename,Char*type);filename—文件名,字符串变量;type一文件打开的方式(r,w,a)函数功能:打开由文件filename指定的文件,并把一个stream与它联系起来。返回一个指针,该指针用来识别随后操作的文件stream。若成功地完成打开,则返回最近打开的文件Stream,若出现错误,则返回NULL。铮守.争(2)文件的关闭fclose#include<stdio.h>intfclose(FILE*stream);filename—文件名,字符串变量;type一文件打开的方式(r,w,a)函数功能:关闭指定的流式文件。fscanf一从流中执行格式化输入艮.^^#include<stdio.h> ; ; ; ; ; ;intfscanf(FILE*stream,Char*format[,argument,…]);函数功能:从指定的输入流中按规定的格式把数据读入由地址参数&arg1,…&arg&i定的单元中。fprint-发送格式化输出到流#include<stdio.h>intfprintf(FILE*stream,Char*format[,argument,…]);函数功能:按规定的格式把数据输出到指定的流式文件stream中。例:#include“stdio.h”/二main()/ /二/二/二/二/二/{FILEfp,*fopen();floatd,date[10][2];inti,j*fp=fopen("试验数据.dat",“r”);for(i=0;i<10;i++)or(j=0;j<2;j++){fscanf(fp,“%f”,&d);date[i][j]=d;}fclose(fp)A}例如,建立存储下列数据的数据文件,并对它进行读、写操作。序号NaO 2 KO 2 CaOSiO 2 弹性模量17.268.1612.68727.263626.767.6611.68727.258236.267.1610.68727.2456477267.6610.68747.200156.767.1612.68747.313066.268.1611.68747.256077.267.1611.68767.255886.768.1610.68767.198896.267.6612.68767.3086二、线性回归法建立数学模型1建立数学模型的方法畲(1)机理分析法(2)数据分析法回归分析法―-静态数模时间序列分析法一动态数模(系统辨识)(3)综合分析法2建立线性回归模型的步骤(1)第一步尸fq,X2,∙∙∙,χι)y=β+βχ+βXAH βX0 11 22 nn一组试验数据(m组,m>n)呼y=β+βX+βXH βX1 0 111 212 n1ny=β+βX+βXH PXi0 1i1 2i2 niny=β+βx+βxH—βx, Zm061m122m2ZnmnN目标:求BJ的估计值口。使y-(b+bx+…+bX)=ε(预报误差)最小与i0 1i1,'nin一/用最小二乘法,使Q=E(y-y)2=极小值iii=1逊=ab02∑[y-(bi0i=1+bx1i1H Hbx)]=0nin肛abk=2∑[yii=1X=0+bxH Hbx)-(b01i1ninikmb0+b∑x1 i1i=1H Hb∑Xnin
i=1∑yii=1b∑x0 i1i=1+b1Σx2+…+bΣxi1i=1ni=1Xin i1=∑yixi1i=1b∑x0ik
i=1+b∑xx1i1J
i=1ikH Hbn∑xxin-
i=1ikS±00=m,S01=∑x,…,Si1 I0nS10=∑x,Si=1/=∑∑x,din0i=1i1 11i=1/Xi;,…,Si=1Sk0∑x,Sikk1i=1=∑i=1=∑yii=1=∑xx,dini1 11ni=1=∑xx,…,Si1ikkni=1∑xxiniki=1y*k=∑yixi1i=1,d=∑yxk iiki=1Sb+Sb+…+Sb=d000 011 0nn0Sb+Sb+…+Sb=d1100 111 1nn1Sb+Sb+…+Sb=d:k00k11knnk由试验数据计算系数。第二步求方程的解B=b0b1bn」第三步判断模型的显著性①统计量F=4S剩ʃ剩_( 、2%=Ey-yi=11Jf回=n(λ\2[yi-yijS=E剩i=1f=m一1一n剩y=b+bxH Fbx0 11 nn②给出显著水平中-蒙挚一蒙学一岁学α(0.1,0.05,0.01)F(n,m一1一n)α③判断F>F 显著 呈线性关系F<Fα 不显著不呈线性关系例:(m=6,n=1)律*X 132 147 163 179 198 222Y 0 0.6 1.1 1.8 2.4 3.1Y=-4.688566+0.035669X利用得到的Y的一个表达式,可以算出相应的弹性模量。三源程序1、立存储数据的数据文件,并对它进行读、写操作:数据如上面的表格#include<stdio.h>main(); ;{艮Charch;FILE*fp;{3exit(1);}3while((ch=fgetc(fp))!=EOF)fputc(ch,stdout);fclose(fp);}上机调试通过同F运行结果如下:N0.Na2OK2O8.16CaO12.68SiO2Model727.263617.2626.767.6611.68727.258236.267.1610.68727.2456/*此程序为对F:\TC\shujiu.txt的47.267.6610.68747.2001文件进行输出*/56.7637.1612.68747.313066.268.1611.68747.256077.267.16.11.68767.255886.768.1610.68767.198896.267.6612.68767.3086#include<stdio.h>main()露⅞□M∣⅝⅛{FILE*fp;floatd,date[9][6];inti,j;for(i=0;i<9;i++)for(j=0;j<6;j++)date[i][j]=d;}for(i=0;i<9;i++)fclose(fp);}上机调试通过运行结果如下:1.007.268.1612.6872.007.26362.006.767.6611.6872.007.25823.00M6.26M7.16P10.6872.007.24564.007.267.6610.6874.007.20015.00»6.76j>7.1612.6874.007.31306.006.268.1611.6874.007.25607.007.267.1611.6876.007.25588.006.768.1610.6876.007.19889.006.267.6612.6876.007.3086、/*此程序为先对F:\TC\shujiu.txt 的文件进行打开,再导入到一个二维数组里进行输出*/2、璃弹性模量与成分之间的数学模型 守.琴丁.蒙•源代码如下:inti,j,k,n,m;Charcele;voidhead(){for(i=0;i<8;i++)请选择要进行的操作k事or(i=0;i<8;i++)第{for(i=0;i<8;i++)运行程序for(i=0;i<8;i++)退出程序}cele=getchar();else。' 'exit(1);}main(){for(i=0;i<20;i++)for(i=0;i<8;i++)欢迎使用本程序for(i=0;i<8;i++)本程序根据已知的数据构件一个数学模型]^其作用是通过分析构成物质,用计算机模拟出材料的弹性模量。缱资源加工与生物工程学院 %c无机0501班姓名:金光龙学号head();请输入行数此一,例产.,请输入列数n: FFFFFfloats[n][n+1],b[n],x[m+1][n+1],y[5];floatr,t;charCelect;FILE*fp1;/*date1.txt数据为1op000 017.268.1612.68727.263616.767.6611.68727.258217.267.6610.68747.200116.767.1612.68747.313016.268.1611.68747.2560》17.267.1611.68767.25581争768.1610.68767.1988另16.267.6612.68767.3086*/for(i=0;i<10;i++)for(j=0;j<6;j++)x[i][j]=t;}fclose(fp1);/*把文件中数赋给x[10][6]*/for(i=0;i<5;i++)鬻{for(j=0;j<10;j++){s[i][j]=0;for(k=1;k<10;k++)s[i][j]+=x[k][i]*x[k][j];})除5.粤♦增广阵为:for(i=0;i<5;i++){for(j=0;j<6;j++))/*得到S二维数组*//广崂for(k=0;k<4;k++)for(i=k+1;i<5;i++){r=s[i][k]/s[k][k];for(j=k;j<6;j++)s[i][j]=s[i][j]-s[k][j]*r;)for(i=0;i<5;i++){for(j=0;j<6;j++)if(fabs(s[i][j])<0.00001)s[i][j]=0;} A对角阵为:for(i=0;i<5;i++)5Jtd|⅛∙⅛JjS{for(j=0;j<6;j++))/*得到对角阵*/b[4]=s[4][5]/s[4][4];b[3]=(s[3][5]-s[3][4]*b[4])/s[3][3];b[2]=(s[2][5]-s[2][4]*b[4]-s[2][3]*b[3])/s[2][2];b[1]=(s[1][5]-s[1][4]*b[4]-s[1][3]*b[3]-s[1][2]*b[2])∕s[1][1];b[0]=(s[0][5]-s[0][4]*b[4]-s[0][3]*b[3]-s[0][2]*b[2]-s[0][1]*b[1])∕s[0][0];/*得到b[5]*/阵为FILE*fp2;/*文件date2.txt的等式为:y=7.2620+(-0.0303*x1)+(-0.0320*x2)+(0.04012*x3)+(-0.0003*x4)*/fclose(fp2);•“ •” •” ・”我们得到的数学模型为:b[3],b[4]);for(i=0;i<40;i++)使用模型模拟得到的弹性模量:for(i=0;i<5;i++){y[i]=b[0]+b[1]*x[i][1]+b[2]*x[i][2]+b[3]*x[i][3]+b[4]*x[i][4];实际的弹性模量for(i=1;i<=5;i++)} FFFFFFF上机调试通过运行结果如下: 欢迎使用本程序 [^本程序根据已知的数据构件一个数学模型]^
其作用是通过分析构成物质,用计算机模拟出材料的弹性模量。资源加工与生物工程学院无机0501班姓名:金光龙 学号:0302050107 请选择要进行的操作: a.运行程序 b.退出程序请输入行数m: 10请输入列数n: 6增广阵为:9.0060.8468.94105.12666.0065.3060.84412.78466.03710.614502.16441.3868.94466.03529.58805.225101.56500.15105.12)710.61,805.22P1233.807778.88、762.94666.004502.165101.567778.8849308.004832.17对角阵为: FFFFF9.0060.8468.94105.12666.0065.300.001.50-0.00-0.00-0.00-0.050.00J^⅜.00P1.50.-0.00)0.00-0.050.000.000.006.000.000.240.000.00、A0.000.00g24.00-0.01B阵为:b[0]=7.261955b[1]=-0.030281b[2]=-0.031982b[3]=0.040121b[4]=-0.000343我们得到的数学模型为:y=7.261955+(-0.030281*x1)+(-0.031982*x2)+(0.040121*x3)+(-0.000343*x4)使用模型模拟得到的弹性模量:y[0]=7.261955y[1]=7.265197Py[2]=7.256207y[3]=7.247218y[4]=7.200260实际的弹性模量:[0]=7.263600>[1]=7.258200[2]=7.245600[3]=7.200100[4]=7.313000»/pressanykeytocontinue...五实践心得这学期虽然学习了C语言,对C语言有了一定的认识,但还只知道在上面运行程序而不知其真正的用途。实习的几天转眼就过去了,通过这几
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论