首页 > 精品范文库 > 13号文库
西南交大数值分析上机实习报告
编辑:紫陌红颜 识别码:22-1009602 13号文库 发布时间: 2024-05-25 18:30:12 来源:网络

第一篇:西南交大数值分析上机实习报告

数值分析上机实习报告要求

1.应提交一份完整的实习报告。具体要求如下:

(1)要有封面,封面上要标明姓名、学号、专业和联系电话;

(2)要有序言,说明所用语言及简要优、特点,说明选用的考量;

(3)要有目录,指明题目、程序、计算结果,图标和分析等内容所在位置,作到

信息简明而完全;

(4)要有总结,全方位总结机编程计算的心得体会;

(5)尽量使报告清晰明了,一般可将计算结果、图表及对比分析放在前面,程序

清单作为附录放在后面,程序中关键部分要有中文说明或标注,指明该部分的功能和作用。

2.程序需完好保存到期末考试后的一个星期,以便老师索取用于验证、询问或质疑部分内容。

3.认真完成实验内容,可以达到既学习计算方法又提高计算能力的目的,还可以切身体会书本内容之精妙所在,期间可以得到很多乐趣。

4.拷贝或抄袭他人结果是不良行为,将视为不合格。

5.报告打印后按要求的时间提交给任课老师。

数值分析上机试题 10(选择其中两个题目)

1. 给定三个n阶线性方程组Ax=b,其中A的元素aij(i,j,=1,…,n)与阶数分别为

(1)aij=(i+j-1)2, n=3,4,5,…,9;

(2)aij=(i+j)2, n=3,4,5

(3)aij=1/(i+j-1), n=3,4,5,6;

b的元素bi=ai1+ai2+…,ain,(i=1,2,…,n)

已知其准确解为x=(1,1,...,1)T, 用列主元素法分别求解上列方程组。输出各步主元,解释所遇到的现象。

2.用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b,研究其收敛性,上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。

(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4]; b1=[-3,2,4]T, b2=[100,-200,345]T,(2)A行分别为A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1] T, b2=[5,0,-10]T,1

(3)A行分别为A1=[1,3],A2=[-7,1];b=[4,6]T,3.松弛因子对SOR法收敛速度的影响。

用SOR法求解方程组Ax=b,其中

41-3141-2-2...,B ....141-2-314

要求程序中不存系数矩阵A,分别对不同的阶数取w=1.1, 1.2,...,1.9进行迭代,记录近似解x(k)达到||x(k)-x(k-1)||<10-6时所用的迭代次数k,观察松弛因子对收敛速度的影响,并观察当w0或w2会有什么影响?

4.某实际问题中两次过程记录测得(x,y)数据点如下:其中yi=f(xi),i=1,…,21

第一次的数据为:

x=[-5.0000-4.5000-4.0000-3.5000-3.0000-2.5000-2.0000

-1.5000-1.0000-0.500000.50001.00001.5000

2.00002.50003.00003.50004.00004.50005.0000];

y =[-0.0000-0.0001-0.0002-0.0003-0.0004-0.0048-0.0366

-0.1581-0.3679-0.389400.38940.36790.1581

0.03660.00480.00040.00030.00020.00010.0000]

第二次的数据为:

x=[-5.0000-4.7000-4.4000-4.1000-3.8000-3.5000-3.202_

-2.9000-2.6000-2.3000-2.0000-1.7000-1.4000-1.1000

-0.8000-0.5000-0.20000.10000.40000.70001.0000

1.30001.60001.90002.20002.50002.80003.1000

3.40003.70004.00004.30004.60004.9000]

y=[-0.0000-0.0000-0.0000-0.0000-0.0000-0.0000-0.0001

-0.0006-0.0030-0.0116-0.0366-0.0945-0.1972-0.3280

-0.4218-0.3894-0.19220.09900.34090.42880.3679

0.23990.12370.05140.01740.00480.00110.0002

0.00000.00000.00000.00000.00000.0000]

现考虑分段低次或样条插值,或直接插值,总之用不超过7次的分段或不分段插值多项式近似该过程的对应规律y=f(x),请给出一种解决方案使得误差尽量小表示尽量简单。

5.用Runge-Kutta 4阶算法对初值问题y/=-20*y,y(0)=1按不同步长求解,用于观察稳定区间的作用,推荐两种步长h=0.1,0.2。

注:此方程的精确解为:y=e-20x

第二篇:《数值分析》上机实习报告

数值分析上机实验报告

姓 名:班 级:学 号:院 系:机械工程学院指导教师:C语言)

202_级 2006050349

(for(j=0;j

}

void guss(float a[N][N],float b[N])/* 子函数高斯消去法*/ { int i,j;

{

} printf(“Household变换的结果:”);/*输出Household变换的结果*/ for(i=0;i

for(j=0;j

} if(j%N==0)printf(“n”);s=0.0;for(i=j+1;i

} for(i=0;i

} for(k=0,i=0;i

q[i]=y[i]-k*u[i];for(i=0;i

} x[N-1]=y[N-1]/u[N-1];for(i=N-1;i>=0;i--)x[i]=(y[i]-a[i][i+1]*x[i+1])/u[i];printf(“消去法的结果:n”);/*输出消去法的结果*/ for(i=0;i

} printf(“n”);}

void sor(float a[N][N],float b[N])/*子函数超松驰法*/ { float a1[N][N];int i,j,k,m;float x[N],temp[N][N];float w=1.4,h=0,g=0;for(m=0;m

{ for(j=1;j<=N;j++){ if(j<=i-1)h+=temp[i-1][j-1]*x[j-1];else if(j==i)h+=0;else h+=temp[i-1][j-1]*x[j-1];

q[i]=a[i][i-1]/u[i-1];u[i]=a[i][i]-q[i]*a[i-1][i];y[i]=b[i]-q[i]*y[i-1];if(i==5)printf(“n”);printf(“x%d=%9.6f ”,i,x[i]);

} g=(h+b[i-1])*w;x[i-1]=(1-w)*x[i-1]+g;h=0.0;g=0.0;} } printf(“超松弛法的结果:n”);/*输出超松弛法的结果*/ for(i=0;i

四、运行结果

Household变换的结果: 12.3841-4.8931 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000-4.8931 25.3984 6.4941 0.0000-0.0000 0.0000-0.0000-0.0000-0.0000 0.0000 6.4941 20.6115 8.2439-0.0000-0.0000-0.0000 0.0000 0.0000 0.0000 0.0000 8.2439 23.4229-13.8801-0.0000 0.0000-0.0000 0.0000 0.0000-0.0000-0.0000-13.880129.6983 4.5345 0.0000 0.0000 0.0000 0.0000 0.0000-0.0000-0.0000 4.5345 16.0061 4.8814 0.0000-0.0000 0.0000-0.0000-0.0000 0.0000 0.0000 4.8814 26.0133-4.5036 0.0000 0.0000-0.0000 0.0000-0.0000 0.0000 0.0000-4.5036 21.2540 4.5045 0.0000-0.0000 0.0000 0.0000 0.0000-0.0000 0.0000 4.5045 14.5341 消去法的结果:

x0= 1.075799 x1= 2.275744 x2=-2.855514 x3= 2.293097 x4= 2.112633 x5=-6.423833 x6= 1.357923 x7= 0.634245 x8=-0.587266 超松弛法的结果:

x0= 1.073409 x1= 2.272580 x2=-2.856600 x3= 2.292511 x4= 2.112164 x5=-6.422582 x6= 1.357802 x7= 0.634259 x8=-0.587042

五、问题讨论: 1.算法分析

SOR方法的矩阵形式为: X(m)=(E-ωL)-1((1-ω)E+ωR)x(m-1)+(E-ωL)-1ωg 若记 Lω=(E-ωL)-1((1-ω)E+ωR),SOR收敛的充要条件是S(Lω)<1.且若A为对称正定阵,则当松弛因子ω满足0<ω<2时,SOR方法收敛。此题中矩阵B是对称正定阵,且是三对角的,所以选择合适的松驰因子ω,收敛速度是很快的。2.上机出现情况

数组作为子函数参数时,实现的是地址传递,会改变原数组中元素的值,因此主函数调用housholder变换子函数后,原数组a[9][9]中的值已经改变为三对角阵。以下的消去法、超松弛法子函数调用的是已经三对角化后的a[9][9]的值。

调用时由于没有定义housholder变换子函数中数组a[][]的大小,运行时出现以下错误提示: error C2087: '' : missing subscript error C2133: 'a' : unknown size 修改大小为a[N][N]时(N为宏定义常数9),运行正常。

Xn1 , Zk mkmax(Xn)sa[0]=a[0][0]-x;if(sa[0]==0)sa[1]=a[0][1]*a[0][1];else sa[1]=a[1][1]-x-a[0][1]*a[0][1]/sa[0];for(i=2;i

}

float duifen(float a[N][N])/*对分法求取方程的解的子函数*/ { float ss1=0,ss2=23,ss=0,h=0,g=0;float l,ll;h=f(a,ss2);while(1){

ss1=ss;g=f(a,ss);ss=0.5*(ss+23);l=0.5*(ss1+23);if(g-h==1)break;{ if(sa[i-1]*sa[i-2]!=0)sa[i]=a[i][i]-x-a[i-1][i]*a[i-1][i]/sa[i-1];else if(sa[i-2]==0)sa[i]=a[i][i]-x;if(sa[i-1]==0)sa[i]=-1;} { if(sa[i]>=0)hh+=1;else hh+=0;} for(i=0;i

float fanmi(float a[N][N])/*反幂法求解方程的解的子函数*/ {

float mk=0,t,t1;float z[N],yy[N],a3[N][N];int i,j,k,m,tt;float h=0;float l[N]={0,};t1=duifen(a);/*调用对分法求取方程的解*/ for(i=0;i

for(m=0;m-1;i--){ for(j=i+1;j

}

printf(“反幂法的解的特征向量是:n”);{if(m==5)printf(“n”);printf(“%-10.6f”,z[m]);} /*输出反幂法的解的特征向量*/ return 0;for(m=0;m

printf(“n”);main(){ float a[N][N]={{12.3841,-4.8931},{-4.8931,25.3984,6.4941},{0,6.4941,20.6115,8.2439}, {0,0,8.2439,23.4229,-13.8801},{0,0,0,-13.8801,29.6983,4.5345},{0,0,0,0,4.5345,16.0061,4.8814}, {0,0,0,0,0,4.8814,26.0133,-4.5036},{0,0,0,0,0,0,-4.5036,21.2540,4.5045},{0,0,0,0,0,0,0,4.5045,14.5341}};

printf(“对分法的结果是:n”);printf(“d=%f”,duifen(a));/*调用对分法并输出对分法近似解*/ fanmi(a);/*调用反幂法求解*/ }

四、运行结果 对分法的结果是: d=21.916260 反幂法的结果是: d=21.928129 反幂法的解的特征向量是:

0.157066-0.306359 0.282201 0.285925 0.198640 0.533758 0.462842 1.000000 0.611843

五、问题讨论 1.算法分析

1)对分法简单可靠,数值稳定性较高,对于求少量几个特征值特别适宜.但收敛速度较慢.2)反幂法是结合对分法使用的,近似值较恰当,其收敛速度是很快.只要迭代两次就可得到较满意的结果.但在运用中需把一般矩阵化为Hessebberg阵才可计算.2.上机出现情况

当把对分法及反幂法全部写在主函数中,实现题目全部要求时,主函数过于冗长,不利于纠错,也不利于实现共享,通过修改对分法及反幂法为子函数调用,以便于调试,亦有利于共享。

for(j=0;j

}

b[0]=2*h*b[0];a[i][i-1]=1;a[i][i]=4;a[i][i+1]=1;b[N-1]=2*h*b[N-1];for(i=1;i

u[0]=a[0][0];/*消去法求c[i]*/ y[0]=b[0];for(i=1;i

} c[N-1]=y[N-1]/u[N-1];for(i=N-2;i>=0;i--)

for(i=0;i

} s=0.0;for(i=0;i

b[N-1]=b[N-1]+b[N-2];q[i]=a[i][i-1]/u[i-1];u[i]=a[i][i]-q[i]*a[i-1][i];y[i]=b[i]-q[i]*y[i-1];c[i]=(y[i]-a[i][i+1]*c[i+1])/u[i];e=fabs(*x-i);if(e>=2)

w[i]=0;w[i]=0.5*fabs(e*e*e)-e*e+2.0/3.0;w[i]=(-1.0/6.0)*fabs(e*e*e)+e*e-2*fabs(e)+4.0/3.0;else if(e<=1)else

} *x=s;*x1=(c[(int)(m+1)]-c[(int)(m-1)])/2.0;void main(){

}

四、运行结果

三次样条插值求得的结果是: f(4.563)=1.517932 f'(4.563)=0.249350

五、问题讨论:

样条插值效果比Lagrange插值好,由于样条插值不必经过所有点,所以没有Runge现象.而且插值函数比较光滑。

其基本思想是对均匀分划的插值函数的构造,三次样条函数空间中不取1,x,x,x,(x-xj)+为基函数,而取B样条函数Ω3(x-xj/h)为基函数.由于三次样条函数空间是N+3维的,故我们把分点扩大到N1X-1,XN+1,则任意三次样条函数可用Ω3(x-xj/h)线性组合来表示 S(x)= 不同插值问题,若能确定cj由解的唯一性就能求得解S(x).2

33float b[N]={1,0,0.69314718,1.0986123,1.3862944,1.6094378,1.7917595, 1.9459101,2.079445,2.1972246,2.3025851,0.1};float x,x1;float h;h=1;x=4.563;scyt(&x,&x1,b,h);/*调用三次样条插值子函数*/ printf(“f(4.563)=%.6fn”,x);printf(“f'(4.563)=%.6fn”,x1);printf(“三次样条插值求得的结果是:n”);

cjΩ3(x-xj/h)这样对

j1 7

4float z;z=pow(x,7)-28*pow(x,4)+14;return(z);float z;z=7*pow(x,6)-112*pow(x,3);return(z);x=fabs(f1(a))>fabs(f1(b))?a:b;/*初始值的选择*/ } main(){ float a,b;

/*变量定义及赋初值*/ float min;float result;a=0.1;b=1.9;min=1e-5;result=ndf(a,b,min);/*调用牛顿法子函数*/ printf(“用牛顿法求方程在取初值为(0.1,1.9)区间端点时的近似根为:n”);printf(“x=%.6fn”,result);}

四、运行结果

用牛顿法求方程在取初值为(0.1,1.9)区间端点时的近似根为: x=0.845497

五、问题讨论

1.Newton法收敛速度比较快,是平方收敛,但它是局部收敛。2.采用newton法求方程平方收敛,较为精确。但需求函数导数。

3.初始值取为区间端点xo时,取使f(xo)f´´(xo)>0的一个,本例中取为xo=1.9。

(k)

(0)

(0)

3x1.42float z;z=pow(3,y)*pow(y,1.4)*(5*y+7)*sin(y*y);return(z);s=0;for(i=1;i<=(pow(2,j-1));i++)s+=(b-a)*(*f)(a+(2*i-1)*(b-a)/pow(2,j))/pow(2,j-1);t[1][j]=(t[1][j-1]+s)/2;

} {

} z=t[i+1][0];return(z);for(j=1;j<=N-i+1;j++)t[i+1][j-1]=(pow(4,i)*t[i][j]-t[i][j-1])/(pow(4,i)-1);break;if(fabs(t[i][0]-t[i+1][0])<=min)main(){

}

四、运行结果

用Romberg算法求积分的结果(允许误差为0.00001): I=440.536011

五、问题讨论: 1.算法分析

1)Romberge算法的优点是: 把积分化为代数运算,而实际上只需求T1,以后用递推可得.算法简单且收敛速度快,一般4或5次即能达到要求.2)Romberge算法的缺点是: 对函数的光滑性要求较高,计算新分点的值时,这些数值的个数成倍增加。

2.上机出现问题

本程序一开始编写时,是利用函数的递归调用来实现,编译正常通过,但运行时出现异常,经分析可能是多次递归产生误差,改用数组代替递归来存放Tij的值时,运行正常。

(i)float a,b;/*变量定义及初始化*/ float min;float result;float(*p)(float);a=1;b=3;min=1e-5;p=f;result=lbg(a,b,min,p);/*调用龙贝格法求积分子函数*/ printf(“用Romberg算法求积分的结果(允许误差为0.00001):n”);printf(“I=%.6fn”,result);

} } for(i=0;i<4;i++){

} fkt(work1,work2);*t=ttemp+temp[i];for(j=0;j

} }

四、运行结果

定步长四阶Runge-Kutta法求微分方程组解的结果: T Y1 Y2 Y3 0.025000| 0.025000| 0.151579| 8.346120 0.045000| 0.045000| 0.312984| 7.538067 0.085000| 0.085000| 0.560777| 4.944312 0.100000| 0.100001| 0.629078| 4.178828

五、问题讨论: 1.算法分析

1)Runge_Kutta方法的优点: 精度高,不必用别的方法求开始几点的函数值。

可根据f'(t,y)变化的情况与需要的精度自动修改步长。程序简单,存储量少。方法稳定。

rgkt(n,&t,step,&y,work1,work2,work3);/*调用Runge-Kutta算法求解*/ if(i==49||i==89||i==169||i==199)printf(“%9.6f|%9.6f|%9.6f|%9.6fn”,t,y[0],y[1],y[2]);2)Runge_Kutta方法的缺点: 每步要计算函数值f(t,y)四次,在f(t,y)较复杂时,工作量大, 且每一步缺乏可靠的检查。

2.上机出现情况

当用主函数实现题目全部要求时,主函数过于冗长,不利于修改和纠错,也不利于实现共享,通过修改Runge_Kutta法及函数表达式为子函数调用,并把一些条件语句放进子函数中,主函数只控制初始值及结果精度要求,经如此修改后便于阅读和调试。

第三篇:西南交大数值分析第二次大作业(可以运行)

数值分析第二次大作业(1)用Lagrange插值法 程序:

function f=Lang(x,y,x0)symst;f=0;n=length(x);for(i=1:n)

l=y(i);for(j=1:i-1)

l=l*(t-x(j))/(x(i)-x(j));end;for(j=i+1:n)

l=l*(t-x(j))/(x(i)-x(j));end

f=f+l;simplify(f);

if(i==n)if(nargin==3)

f=subs(f,'t',x0);else

f=collect(f);

f=vpa(f,6);end end end

x=[1,2,3,-4,5];y=[2,48,272,1182,2262];t=[-1];disp('插值结果')yt=Lang(x,y,t)disp('插值多项式')yt=Lang(x,y)ezplot(yt,[-1,5]);运行结果:

插值结果: Yt= 12.0000 插值多项式:

yt =4.0*t^43.0*t + 2.0

(2)构造arctan x在[1,6]基于等距节点的10次插值多项式 程序:

function f=New(x,y,x0)symst;if(length(x)==length(y))

n=length(x);c(1:n)=0.0;else disp('xºÍyάÊý²»µÈ£¡');return;end f=y(1);y1=0;xx=linspace(x(1),x(n),(x(2)-x(1)));for(i=1:n-1)for(j=1:n-i)y1(j)=y(j+1)-y(j);end

c(i)=y1(1);

l=t;for(k=1:i-1)

l=l*(t-k);end;

f=f+c(i)*l/factorial(i);simplify(f);

y=y1;

if(i==n-1)if(nargin==3)

f=subs(f,'t',(x0-x(1))/(x(2)-x(1)));else

f=collect(f);

f=vpa(f,6);end end end

>>x=[1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6];y=[atan(1),atan(1.5),atan(2),atan(2.5),atan(3),atan(3.5),atan(4),atan(4.5),atan(5),atan(5.5),atan(6)];disp('插值多项式')yt=New(x,y)ezplot(yt,[1,6]);hold on ezplot('atan(t)',[1,6])grid on

运行结果: 插值多项式

yt = 1.34684*10^(-10)*t^100.00000104758*t^70.00176296*t^4 + 0.0125826*t^3-0.0640379*t^2 + 0.250468*t + 0.785398(1)用MATLAB自带spline函数用于进行三次样条插值 程序:

>>x=[-5,-4,-3,-2,-1,0,1,2,3,4,5];y=[0.03846,0.05882,0.10000,0.20000,0.50000,1.00000,0.50000,0.20000,0.10000,0.05882,0.03846];xi=linspace(-5,5)yi=spline(x,y,xi);plot(x,y,'rp',xi,yi);hold on;syms x fx=1/(1+x^2);ezplot(fx);grid on 运行结果:

由图可知,三次样条插值多项式图像与原函数图像基本一致。(2)取第一类边界条件,用三弯矩法编写MATLAB程序 程序

functionyi=cubic_spline(x,y,ydot,xi)n=length(x);ny=length(y);h=zeros(1,n);lambda=ones(1,n);mu=ones(1,n);M=zeros(n,1);d=zeros(n,1);for k=2:n h(k)=x(k)-x(k-1);end

for k=2:n-1

lambda(k)=h(k+1)/(h(k)+h(k+1));mu(k)=1-lambda(k);d(k)=6/(h(k)+h(k+1))...*((y(k+1)-y(k))/h(k+1)-(y(k)-y(k-1))/h(k));end

d(1)=6/h(2)*((y(2)-y(1))/h(2)-ydot(1));d(n)=6/h(n)*(ydot(2)-(y(n)-y(n-1))/h(n));A=diag(2*ones(1,n));for i=1:n-1 A(i,i+1)=lambda(i);A(i+1,i)=mu(i+1);end M=Ad;for k=2:n if x(k-1)<=xi & xi<=x(k)yi=M(k-1)/6/h(k)*(x(k)-xi)^3...+M(k)/6/h(k)*(xi-x(k-1))^3...+1/h(k)*(y(k)-M(k)*h(k)^2/6)*(xi-x(k-1))...+1/h(k)*(y(k-1)-M(k-1)*h(k)^2/6)*(x(k)-xi);return;end end

>>a =-5;b = 5;n = 10;h =(b-a)/n;x=a:h:b;y=1./(1+x.^2);ydot=[-5/338,5/338];

xx=a:0.01:b;yy=1./(1+xx.^2);m = length(xx);z = zeros(1,m);for i=1:m z(i)=cubic_spline(x,y,ydot,xx(i));end

plot(x,y,'o',xx,yy,'k:',xx,z,'k-');运行结果: 本题直接利用MATLAB自带的cftool曲线拟合工具箱完成。拟合结果:

(1)用多项式拟合:

Linear model Poly1:

f(x)= p1*x + p2 Coefficients(with 95% confidence bounds):

p1 =

-0.8685(-0.8815,-0.8556)

p2 =

30.61(30.48, 30.73)

Goodness of fit:

SSE: 0.1733

R-square: 0.9993

Adjusted R-square: 0.9993

RMSE: 0.1112(2)最小二乘法插值:

Linear interpolant:

f(x)= piecewise polynomial computed from p Coefficients:

p = coefficient structure

Goodness of fit:

SSE: 0

R-square: 1

Adjusted R-square: NaN

RMSE: NaN R-square(确定系数)SSR:Sum of squares of the regression,即预测数据与原始数据均值之差的平方和,公式为:

SST:Total sum of squares,即原始数据和均值之差的平方和,公式为:

“确定系数”是定义为SSR和SST的比值,故

其实“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好

4.(1)16点复合梯形公式: 程序:

function I =T_quad(x,y)n=length(x);m=length(y);h=(x(n)-x(1))/(n-1);a=[1 2*ones(1,n-2)1];I=h/2*sum(a.*y);End 运行结果:

(1)x=0:0.0625:1 y=exp(x)I=T_quad(x,y)x =

Columns 1 through 7

0

0.0625

0.1250

0.1875

0.2500

0.3125

0.3750

Columns 8 through 14

0.4375

0.5000

0.5625

0.6250

0.6875

0.7500

0.8125

Columns 15 through 17

0.8750

0.9375

1.0000 y =

Columns 1 through 7

1.0000

1.0645

1.1331

1.202_

1.2840

1.3668

1.4550

Columns 8 through 14

1.5488

1.6487

1.7551

1.8682

1.9887

2.1170

2.2535

Columns 15 through 17

2.3989

2.5536

2.7183 I =

1.7188

(2)x=1:0.0625:2 y=sin(x)/x I=T_quad(x,y)x =

Columns 1 through 7 1.0000

1.0625

1.1250

1.1875

1.2500

1.3125

1.3750

Columns 8 through 14

1.4375

1.5000

1.5625

1.6250

Columns 15 through 17

1.8750

1.9375

2.0000 y = 0.6116 I = 0.6116(2)8点的复合simpson公式: 程序:

function I=S_quad(x,y)n=length(x);m=length(y)N=(n-1)/2;h=(x(n)-x(1))/N;a=zeros(1,n);for k=1:N a(2*k-1)=a(2*k-1)+1;a(2*k)=a(2*k)+4;a(2*k+1)=a(2*k+1)+1 end I= h/6*sum(a.*y)end 运行结果:

(1)x=0:0.0625:1 y=exp(x)I=S_quad(x,y)I =

1.7183

(2)x=1:0.0625:2 y=sin(x)/x I=S_quad(x,y)I =

1.6875

1.7500 1.8125

0.6116

(3)三点的Gauss-Legendre积分公式

程序:

function I=G_quad(fun,a,b,N)h=(b-a)/N;I=0;for k=1:N

t=[-sqrt(3/5)0 sqrt(3/5)];A=[5/9 8/9 5/9];

F=feval(fun,h/2*t+a+(k-1/2)*h);

I=I+sum(A.*F)end I=h/2*I;end

运行结果:

(1)fun=inline('exp(x)')I=G_quad(fun,0,1,4)I =

2.2722 I =

5.1898 I =

8.9360 I =

13.7463 I =

1.7183(2)fun=inline('sin(x)/x')I=G_quad(fun,1,2,4)I =

1.5954 I =

3.0143 I =

4.2363 I =

5.2479 I =

0.6560

5、给定初值问题y’=-1000(y-x^2)+2x,与y(0)=0,请分别用Euler和预测-矫正Euler算法按步长h=0.1,0.01,0.001,0.0001计算其数值,分析其中遇到的现象及问题

解:首先根据可计算出原函数为:y=Ce(-1000x)+x2,其中C为常量,为简便计算取C=1,计算初值x0=0,y0=0。(1)Euler算法 程序:

function[x,y]=Euler_f(ydot_fun,x0,y0,h,N)x=zeros(1,N+1);x(1)=x0;y(1)=y0;for n=1:N x(n+1)=x(n)+h;y(n+1)=y(n)+h*feval(ydot_fun,x(n),y(n));end

format short e ydot_fun=inline('-1000*(y-x*x)+2*x','x','y')[x,y]=Euler_f(ydot_fun,0,0,0.1,10)xx=0:0.1:1 yy=exp(-1000*xx)+xx.*xx d=abs(y-yy)plot(xx,d)title('Eular方法误差趋势图 h=0.1')运行结果: h=0.1 x =

Columns 1 through 6

0 1.0000e-001 2.0000e-001 3.0000e-001 4.0000e-001 5.0000e-001

Columns 7 through 11

6.0000e-001 7.0000e-001 8.0000e-001 9.0000e-001 1.0000e+000 y =

Columns 1 through 6

0

0 1.0200e+000-9.6940e+001 9.6061e+003-9.5099e+005

Columns 7 through 11

9.4148e+007-9.3207e+009 9.2274e+011-9.1352e+013 9.0438e+015 yy =

Columns 1 through 6

1.0000e+000 1.0000e-002 4.0000e-002 9.0000e-002 1.6000e-001 2.5000e-001

Columns 7 through 11

3.6000e-001 4.9000e-001 6.4000e-001 8.1000e-001 1.0000e+000

d =

Columns 1 through 6

1.0000e+000 1.0000e-002 9.8000e-001 9.7030e+001 9.6060e+003 9.5099e+005

Columns 7 through 11

9.4148e+007 9.3207e+009 9.2274e+011 9.1352e+013 9.0438e+015

h=0.01 x =

Columns 1 through 6 0 1.0000e-002 2.0000e-002 3.0000e-002 4.0000e-002 5.0000e-002

Columns 7 through 11

6.0000e-002 7.0000e-002 8.0000e-002 9.0000e-002 1.0000e-001 y =

Columns 1 through 6

0

0 1.2000e-003-6.4000e-003 6.7200e-002-5.8800e-001

Columns 7 through 11

5.3180e+000-4.7825e+001 4.3047e+002-3.8742e+003 3.4868e+004 xx =

Columns 1 through 6 0 1.0000e-002 2.0000e-002 3.0000e-002 4.0000e-002 5.0000e-002

Columns 7 through 11

6.0000e-002 7.0000e-002 8.0000e-002 9.0000e-002 1.0000e-001 yy =

Columns 1 through 6

1.0000e+000 1.4540e-004 4.0000e-004 9.0000e-004 1.6000e-003 2.5000e-003

Columns 7 through 11

3.6000e-003 4.9000e-003 6.4000e-003 8.1000e-003 1.0000e-002

d =

Columns 1 through 6

1.0000e+000 1.4540e-004 8.0000e-004 7.3000e-003 6.5600e-002 5.9050e-001

Columns 7 through 11

5.3144e+000 4.7830e+001 4.3047e+002 3.8742e+003 3.4868e+004

4.9580e+000 4.8315e+001 4.2983e+002 3.8750e+003 3.4867e+004

h=0.001 x =

Columns 1 through 6 0 1.0000e-003 2.0000e-003 3.0000e-003 4.0000e-003 5.0000e-003

Columns 7 through 11

6.0000e-003 7.0000e-003 8.0000e-003 9.0000e-003 1.0000e-002 y = Columns 1 through 6

0

0 3.0000e-006 8.0000e-006 1.5000e-005 2.4000e-005

Columns 7 through 11

3.5000e-005 4.8000e-005 6.3000e-005 8.0000e-005 9.9000e-005 xx =

Columns 1 through 6 0 1.0000e-003 2.0000e-003 3.0000e-003 4.0000e-003 5.0000e-003

Columns 7 through 11

6.0000e-003 7.0000e-003 8.0000e-003 9.0000e-003 1.0000e-002

yy =

Columns 1 through 6

1.0000e+000 3.6788e-001 1.3534e-001 4.9796e-002 1.8332e-002 6.7629e-003

Columns 7 through 11

2.5148e-003 9.6088e-004 3.9946e-004 2.0441e-004 1.4540e-004 d =

Columns 1 through 6

1.0000e+000 3.6788e-001 1.3534e-001 4.9788e-002 1.8317e-002 6.7389e-003

Columns 7 through 11

2.4798e-003 9.1288e-004 3.3646e-004 1.2441e-004 4.6400e-005

h=0.0001 x =

Columns 1 through 6 0 1.0000e-003 2.0000e-003 3.0000e-003 4.0000e-003 5.0000e-003

Columns 7 through 11

6.0000e-003 7.0000e-003 8.0000e-003 9.0000e-003 1.0000e-002 y =

Columns 1 through 6

0

0 3.0000e-006 8.0000e-006 1.5000e-005 2.4000e-005

Columns 7 through 11

3.5000e-005 4.8000e-005 6.3000e-005 8.0000e-005 9.9000e-005 xx =

Columns 1 through 6 0 1.0000e-004 2.0000e-004 3.0000e-004 4.0000e-004 5.0000e-004

Columns 7 through 11

6.0000e-004 7.0000e-004 8.0000e-004 9.0000e-004 1.0000e-003 yy =

Columns 1 through 6

1.0000e+000 9.0484e-001 8.1873e-001 7.4082e-001 6.7032e-001 6.0653e-001

Columns 7 through 11

5.4881e-001 4.9659e-001 4.4933e-001 4.0657e-001 3.6788e-001 d =

Columns 1 through 6

1.0000e+000 9.0484e-001 8.1873e-001 7.4081e-001 6.7031e-001 6.0651e-001

Columns 7 through 11

5.4878e-001 4.9654e-001 4.4927e-001 4.0649e-001 3.6778e-001

(2)预测-矫正Euler算法 程序:

function[x,y]=Euler_r(ydot_fun,x0,y0,h,N)x=zeros(1,N+1);y=zeros(1,N+1);x(1)=x0;y(1)=y0;for n=1:N x(n+1)=x(n)+h;ybar=y(n)+ h*feval(ydot_fun,x(n),y(n))y(n+1)=y(n)+h/2*feval(ydot_fun,x(n),y(n))+ feval(ydot_fun,x(n+1),ybar)end

format short e ydot_fun=inline('-1000*(y-x*x)+2*x','x','y')[x,y]=Euler_r(ydot_fun,0,0,0.001,10)xx=0:0.0001:0.001 yy=exp(-1000*xx)+xx.*xx d=abs(y-yy)plot(xx,d)title('Eular矫正方法误差趋势图 h=0.001')运行结果: h=0.1 x =

Columns 1 through 6 0 1.0000e-001 2.0000e-001 3.0000e-001 4.0000e-001 5.0000e-001

Columns 7 through 11

6.0000e-001 7.0000e-001 8.0000e-001 9.0000e-001 1.0000e+000 y =

Columns 1 through 6 0 1.0200e+001 1.0083e+006 9.9774e+010 9.8728e+015 9.7692e+020

Columns 7 through 11

9.6667e+025 9.5653e+030 9.4650e+035 9.3657e+040 9.2675e+045 xx =

Columns 1 through 6 0 1.0000e-001 2.0000e-001 3.0000e-001 4.0000e-001 5.0000e-001

Columns 7 through 11

6.0000e-001 7.0000e-001 8.0000e-001 9.0000e-001 1.0000e+000 yy =

Columns 1 through 6

1.0000e+000 1.0000e-002 4.0000e-002 9.0000e-002 1.6000e-001 2.5000e-001

Columns 7 through 11

3.6000e-001 4.9000e-001 6.4000e-001 8.1000e-001 1.0000e+000 d =

Columns 1 through 6

1.0000e+000 1.0190e+001 1.0083e+006 9.9774e+010 9.8728e+015 9.7692e+020

Columns 7 through 11

9.6667e+025 9.5653e+030 9.4650e+035 9.3657e+040 9.2675e+045

h=0.01 x =

Columns 1 through 6 0 1.0000e-002 2.0000e-002 3.0000e-002 4.0000e-002 5.0000e-002

Columns 7 through 11

6.0000e-002 7.0000e-002 8.0000e-002 9.0000e-002 1.0000e-001 y =

Columns 1 through 6 0 1.2000e-001 1.0788e+003 9.7045e+006 8.7302e+010 7.8537e+014

Columns 7 through 11

7.0652e+018 6.3558e+022 5.7177e+026 5.1436e+030 4.6272e+034 xx =

Columns 1 through 6 0 1.0000e-002 2.0000e-002 3.0000e-002 4.0000e-002 5.0000e-002

Columns 7 through 11

6.0000e-002 7.0000e-002 8.0000e-002 9.0000e-002 1.0000e-001 yy =

Columns 1 through 6

1.0000e+000 1.4540e-004 4.0000e-004 9.0000e-004 1.6000e-003 2.5000e-003

Columns 7 through 11

3.6000e-003 4.9000e-003 6.4000e-003 8.1000e-003 1.0000e-002 d =

Columns 1 through 6

1.0000e+000 1.1985e-001 1.0788e+003 9.7045e+006 8.7302e+010 7.8537e+014

Columns 7 through 11

7.0652e+018 6.3558e+022 5.7177e+026 5.1436e+030 4.6272e+034

h=0.001 x =

Columns 1 through 6 0 1.0000e-003 2.0000e-003 3.0000e-003 4.0000e-003 5.0000e-003

Columns 7 through 11

6.0000e-003 7.0000e-003 8.0000e-003 9.0000e-003 1.0000e-002

y =

Columns 1 through 6 0 3.0000e-003 6.5015e-003 1.0255e-002 1.4135e-002 1.8079e-002

Columns 7 through 11

2.2057e-002 2.6053e-002 3.0058e-002 3.4069e-002 3.8084e-002 xx =

Columns 1 through 6 0 1.0000e-003 2.0000e-003 3.0000e-003 4.0000e-003 5.0000e-003

Columns 7 through 11

6.0000e-003 7.0000e-003 8.0000e-003 9.0000e-003 1.0000e-002 yy =

Columns 1 through 6

1.0000e+000 3.6788e-001 1.3534e-001 4.9796e-002 1.8332e-002 6.7629e-003

Columns 7 through 11

2.5148e-003 9.6088e-004 3.9946e-004 2.0441e-004 1.4540e-004 d =

Columns 1 through 6

1.0000e+000 3.6488e-001 1.2884e-001 3.9541e-002 4.1968e-003 1.1316e-002

Columns 7 through 11

1.9542e-002 2.5092e-002 2.9658e-002 3.3864e-002 3.7939e-002

h=0.0001 x =

Columns 1 through 6 0 1.0000e-004 2.0000e-004 3.0000e-004 4.0000e-004 5.0000e-004

Columns 7 through 11

6.0000e-004 7.0000e-004 8.0000e-004 9.0000e-004 1.0000e-003 y =

Columns 1 through 6 0 2.1000e-004-1.8838e-001 1.6937e+002-1.5227e+005 1.3690e+008

Columns 7 through 11-1.2308e+011 1.1065e+014-9.9482e+016 8.9439e+019-8.0410e+022 xx =

Columns 1 through 6 0 1.0000e-004 2.0000e-004 3.0000e-004 4.0000e-004 5.0000e-004

Columns 7 through 11

6.0000e-004 7.0000e-004 8.0000e-004 9.0000e-004 1.0000e-003 yy =

Columns 1 through 6

1.0000e+000 9.0484e-001 8.1873e-001 7.4082e-001 6.7032e-001 6.0653e-001

Columns 7 through 11

5.4881e-001 4.9659e-001 4.4933e-001 4.0657e-001 3.6788e-001 d =

Columns 1 through 6

1.0000e+000 9.0463e-001 1.0071e+000 1.6862e+002 1.5227e+005 1.3690e+008

Columns 7 through 11

1.2308e+011 1.1065e+014 9.9482e+016 8.9439e+019 8.0410e+022

现象和结论

1.对于两种方法,计算步长对计算结果稳定性有较大影响,步长选取不当时计算误差会很大;

2.在一定范围内,计算步长越小,计算结果越稳定,结果误差越小;

3.但是并不是计算步长越小越好,计算步长取值越小计算次数就会增大,初始数据误差积累越严重,也会导致结果失真。

第四篇:工程造价实习报告(西南交大)

一、毕业实习是我们毕业前的重要环节之一,是学生对以后社会生活的适应起着决定性的作用。具有较强的实践性、社会性,其目的是通过实习更好的实现理论与实践相结合,使学生毕业前巩固和校验学过的理论知识、锻炼和提高学生的实践技能、提高分析和解决实际问题的能力,提高学生对专业现状及未来的认识,增强个人在社会上的生存能力,为毕业后参加工作,能更好的完成各项实际工作,实现自我价值,打下一个良好的基础。

二、202_年1月1日至今,我在重庆城建控股(集团)有限责任公司市政部门做预算员。这是第一次正式接触预算工作,每天在规定的时间上下班,上班期间要认真准时地完成自己的工作任务,不能草率敷衍了事。我们的肩上开始扛着责任,凡事得谨慎小心,否则随时可能要为一个小小的错误承担严重的后果付出巨大的代价,再也不是一句对不起和一纸道歉书所能解决。

三、实习期间我也下工地进行了实践,看了开挖沟槽土方时当开挖沟槽深度大于5m时施工单位必须向监理单位及建设单位重新提出专项施工方案,同时在施工过程中放坡系数也与沟槽深度小于5m的段落不同。管道安装、沟槽回填、检查井钢筋绑扎、检查井模板安装、检查井砼的浇筑、道路路基和路面施工。对道路工程的施工顺序和施工工艺有了一定的了解后,在计算工程量的时候有很大的帮助。

四、绑扎钢筋专门看了一下,以前只是老师说钢筋在一个工程中占据的费用很大。现在亲眼所见,果不其然,在施工现场,放

眼望去整条道路上的检查井基本都在施工钢筋,工人们正在忙碌的绑钢筋,大家分工明确,都很认真。我也前去绑扎了点点钢筋,加工处理了一些箍筋,但是最后还是有很多不合格,最后还是现场的师傅给我讲解了一些原理后我才自己动手加工出来看几个合格箍筋。其实我觉得我们能动手操作就是我们最大的进步,在学校我根本就不能把书本上的东西用于实践中去,这次我就好好的实践了一番,可以说是受益匪浅。

五、我们在学校里学的不是知识,而是一种叫做自学的能力。参加工作后才能深刻体会这句话的含义。我实习的是预算员,随着新的定额的推出、新价目的推出、新计算建筑面积规则的出现等,自己所学的专业知识用上的并不多,让我不得不重新学习新的计算方法。在这个现代化的时代,知识更新的速度太快了,靠原有的一点知识肯定是不行的。我们必须时时刻刻在工作中勤于动手慢慢琢磨,不断学习不断积累。遇到不懂的地方,自己先想方设法解决,实在不行可以虚心请教他人,而没有自学能力的人迟早要被企业和社会所淘汰。

六、在毕业实习这五个月时间里,对我来讲是一个理论与实际相结合的过程,在各个老师的指导下,以及自己的努力积极参与工作,让自己对造价软件有了更熟练的操作。而且对整个预算工作的各个流程也有了深刻的了解和认识,并且巩固了课本上的知识,将理论运用到实际中去,从实际实习中丰富自己的理论知识。整个实习过程时间虽不长,但让自己知道了如何当一名好的预算员。整个实习过程也让自己发现了自己理论上的不足。我巩固和充实自己在学校学的理论知识,加深了对相关内容和知识的理解,同时还接触了课堂以外的实践知识,加深解了对工程造价这个专业现在或者以后市场的需要。培养了我独立进行资料收集和解决问题的能力,拓宽了视野,增长了见识,体验到社会竞争的残酷,而更多的是希望自己在工作中积累各方面的经验,为将来自己走创业之路做准备。我的实习工作结束了,这又是一个新的开始。我尝到了实习给我带来的甜头,也尝到了建筑行业的辛苦。

第五篇:西南交大大三桥梁实习报告

桥梁暑期生产实习

实习报告

姓 名:

学 号:

学 院:

班 级:

指导教师:

生产实习报告

目 录

一、实习目的........................................................................................二、实习时间........................................................................................三、实习方式........................................................................................四、实习内容........................................................................................一、参观混凝土预应力梁的施工工艺.........................................二、参观装配式简支梁桥施工.....................................................三、参观三台县涪江大桥.............................................................四、参观青义涪江大桥.................................................................五、参观圣水涪江大桥.................................................................五、实习心得......................................................................................生产实习报告

一、实习目的

生产实习是土木工程专业大学三年级学生所进行的专业基本技能的实习。生产实习是建筑工程专业教学计划中重要的实践性教学环节,是进行工程师基本训练的有机组成部分。实习过程中,使我们深入施工现场,接触实际工程,进一步了解和掌握桥梁施工工艺过程及工长和技术员的业务工作,巩固和加深所学有关课程,做到理论联系实际。

二、实习时间

202_年7月9号,参观德阳华西绿舍预制构件有限公司生产车间。

202_年7月10号—202_年7月11号,参观绵阳三台县涪江大桥、青义涪江大桥和圣水涪江大桥施工现场。

三、实习方式

在实践中学生参观施工现场的生产活动,指导老师现场讲解桥梁施工工艺,同学结合现场施工情况提出问题,并能运用所学专业知识解决问题,进一步树立劳动观点和专业思想,提高分析问题和解决问题的能力。

生产实习报告

2、后张法混凝土预应力梁施工工艺

后张法是先浇筑构件混凝土,待混凝土硬结后,再张拉预应力束的方法。主要施工流程:先浇筑预应力混凝土,并在其中预留穿束孔道(或设套管),待混凝土达到要求强度后,将筋束穿入预留孔道内,安装锚具,将千斤顶支撑于混凝土构件端部,张拉筋束,使构件也同时受到压缩。待张拉到控制预应力后,即用锚具将筋束锚固在混凝土构件上,使混凝土获得并保持其压应力。最后,在预留孔道内压注水泥浆,以保护预应力筋束不致锈蚀,并使筋束与混凝土黏结成为整体。

图2 后张法筋束锚固

生产实习报告

二、参观装配式简支梁桥施工

简支梁桥属于单孔静定结构,受力明确;构造简单,易于设计成系列化标准化,组织大规模预制生产;施工方便,装配式的施工方法,可以大量节约模板支架,降低劳动强度,缩短工期,显著加快架桥速度。为中小跨径桥梁中应用最广泛的桥型。

预制梁的安装是装配式桥梁施工中的关键工作,应结合施工现场条件、桥梁跨径大小、设备能力等具体情况,从节约造价、加快施工速度和充分保证施工安全等方面来合理选择架桥方法。主要有起吊、纵移、横移、落梁等工序,施工工艺主要有陆地架设、浮吊架设和高空架设等。

图5装配式简支梁桥施工图

生产实习报告

四、参观青义涪江大桥

青义涪江大桥为五跨(78+3×138+78)现浇连续梁桥。连续梁桥支点处承受负弯矩作用,跨中受正弯矩作用,同等跨度下跨中正弯矩比简支梁桥小,跨越能力更大,行车条件好。

连续梁桥常用施工方法有满堂支架法、移动支架法、悬臂法、顶推法等,其中悬臂法又分为悬臂浇筑法和悬臂拼装法,该桥采用悬臂浇筑法施工。主要施工艺为:移动挂篮,装底模和侧模,装底板和肋板钢筋并预留管道,装内模,装顶板钢筋并预留管道,浇筑混凝土,养生混凝土,穿顶预应力筋并张拉锚固,最后在预留孔道内压注水泥浆。

图七 青义涪江大桥

生产实习报告

五、参观圣水涪江大桥

圣水涪江大桥西起滨江西路,跨滨江西路、涪江,东与科技城二号隧道连接,全长472米,宽23米,为双向4车道。该桥为预制混凝土连续梁桥,连续梁桥支点处承受负弯矩作用,跨中受正弯矩作用,因此支座处顶板需布置预应力筋束,跨中则在底板布置预应力筋束。

图九 箱梁钢筋布置

西南交大数值分析上机实习报告
TOP