材料力学上机作业精华版.docx
《材料力学上机作业精华版.docx》由会员分享,可在线阅读,更多相关《材料力学上机作业精华版.docx(15页珍藏版)》请在冰豆网上搜索。
材料力学上机作业精华版
材料力学上机报告
材料力学上机课程作业:
C语言编写
使用的主要数学模型:
1,关于弯矩的计算,首先求出支反力,然后确定积分常数,通过积分算出某已确定点的弯矩。
2,通过叠加法计算某一确定点的挠度,详细公式请参阅《新编材料力学》(张少实)表7-3。
问题1:
一个力作用下的任意截面的弯矩,挠度
编程:
#include
doubleMz,l,a,x,v,E,I,b,F;
main()
{
printf("请输入长度l\n");
scanf("%lf",&l);
printf("请输入长度a\n");
scanf("%lf",&a);
printf("请输入弹性模量E\n");
scanf("%lf",&E);
printf("请输入极惯性矩I\n");
scanf("%lf",&I);
printf("请输入力F\n");
scanf("%lf",&F);
printf("请输入x\n");
scanf("%lf",&x);
b=l-a;
if(x>0&&x{Mz=F*(l-a)*x/l;v=-F*b*x*(l*l-x*x-b*b)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}elseif(x>a&&x{Mz=F*a*(l-x)/l;v=-F*b*(l/b*pow(x-a,3)+(l*l-b*b)*x-x*x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數值溢出\n");}}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F=1000N,a=0.6m,x=0.4m;理论值计算Mz=160.00NmV=-0.000040m问题2:一个力偶作用下的任意截面的弯矩,挠度编程:#include#includedoubleMz,l,a,x,v,E,I,b,M;main(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入长度a\n");scanf("%lf",&a);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入弯矩M\n");scanf("%lf",&M);printf("请输入x\n");scanf("%lf",&x);b=l-a;if(x>0&&x{Mz=M*x/l;v=M*x*(l*l-3*b*b-x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}elseif(x>a&&x{Mz=M*(l-x)/l;v=M*(-x*x*x+3*l*(x-a)*(x-a)+(l*l-3*b*b)*x);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數值溢出\n");}}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,M=1000Nm,a=0.6m,x=0.4m;理论值计算Mz=400.00NmV=0.000053m问题3:一段分布力作用下的任意截面的弯矩挠度编程:#include#includedoubleq,l,c,d,x,E,I,v,Mz;doubleC,D,Ec,Fc;doubleFR1,FR2;/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}main(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入分布力q\n");scanf("%lf",&q);printf("请输入长度c\n");scanf("%lf",&c);printf("请输入长度d\n");scanf("%lf",&d);printf("请输入x\n");scanf("%lf",&x);C=qiyi(x,c);D=qiyi(x,d);FR2=(-q*(d*d-c*c)/2)/l;//求支反力FR1=-q*(d-c)-FR2;Ec=-(FR1*pow(l,3)/6-q*pow(l-c,4)/24+q*pow(l-d,4)/24)/E/I/l;Fc=0;Mz=(FR1*x-0.5*q*C*C+0.5*q*D*D);v=(FR1*pow(x,3)/6-q*pow(C,4)/24+q*pow(D,4)/24)/E/I+Ec*x;printf("截面的弯矩为:%f\n",Mz);printf("截面的挠度为:%f\n",v);}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,q=1000N,c=0.6m,d=0.8m,x=0.4m;理论值计算Mz=-24.00NmV=0.000008m问题4:n个力,h个力偶,m段分布力共同作用下的任意截面的弯矩,挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs,vs,Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度L(m):\n");scanf("%lf",&l);printf("请输入弹性模量E(Pa):\n");scanf("%lf",&E);printf("请输入极惯性矩I(m^4):\n");scanf("%lf",&I);printf("请输入集中载荷F的个数n(个):\n");scanf("%d",&nF);printf("请输入集中载荷F(N)的值和位置a(m):\n");for(i=0;i{printf("集中力%d:",i+1);scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数n(个):\n");scanf("%d",&nM);printf("请输入外力偶值M(M*m)和位置b(m):\n");for(i=0;i{printf("外力偶%d:",i+1);scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数n(个):\n");scanf("%d",&nq);printf("请输入分布力值q(N/m)和起始位置x1(m)和终止位置x2(m):\n");for(i=0;i{printf("分布力%d:",i+1);scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x(m):\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i];vs=vs+v[i];}printf("截面的弯矩为%f\n",Mzs);printf("截面的挠度为%f\n",vs);} 运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算Mz=-1624.00NmV=0.000395m问题5:n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intj;intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入集中载荷F的个nF:");scanf("%d",&nF);printf("请输入集中载荷F的值和位置a:");for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
Mz=F*(l-a)*x/l;
v=-F*b*x*(l*l-x*x-b*b)/(6*E*I*l);
printf("Mz=%f\n",Mz);
printf("v=%f\n",v);
}
elseif(x>a&&x{Mz=F*a*(l-x)/l;v=-F*b*(l/b*pow(x-a,3)+(l*l-b*b)*x-x*x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數值溢出\n");}}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F=1000N,a=0.6m,x=0.4m;理论值计算Mz=160.00NmV=-0.000040m问题2:一个力偶作用下的任意截面的弯矩,挠度编程:#include#includedoubleMz,l,a,x,v,E,I,b,M;main(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入长度a\n");scanf("%lf",&a);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入弯矩M\n");scanf("%lf",&M);printf("请输入x\n");scanf("%lf",&x);b=l-a;if(x>0&&x{Mz=M*x/l;v=M*x*(l*l-3*b*b-x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}elseif(x>a&&x{Mz=M*(l-x)/l;v=M*(-x*x*x+3*l*(x-a)*(x-a)+(l*l-3*b*b)*x);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數值溢出\n");}}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,M=1000Nm,a=0.6m,x=0.4m;理论值计算Mz=400.00NmV=0.000053m问题3:一段分布力作用下的任意截面的弯矩挠度编程:#include#includedoubleq,l,c,d,x,E,I,v,Mz;doubleC,D,Ec,Fc;doubleFR1,FR2;/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}main(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入分布力q\n");scanf("%lf",&q);printf("请输入长度c\n");scanf("%lf",&c);printf("请输入长度d\n");scanf("%lf",&d);printf("请输入x\n");scanf("%lf",&x);C=qiyi(x,c);D=qiyi(x,d);FR2=(-q*(d*d-c*c)/2)/l;//求支反力FR1=-q*(d-c)-FR2;Ec=-(FR1*pow(l,3)/6-q*pow(l-c,4)/24+q*pow(l-d,4)/24)/E/I/l;Fc=0;Mz=(FR1*x-0.5*q*C*C+0.5*q*D*D);v=(FR1*pow(x,3)/6-q*pow(C,4)/24+q*pow(D,4)/24)/E/I+Ec*x;printf("截面的弯矩为:%f\n",Mz);printf("截面的挠度为:%f\n",v);}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,q=1000N,c=0.6m,d=0.8m,x=0.4m;理论值计算Mz=-24.00NmV=0.000008m问题4:n个力,h个力偶,m段分布力共同作用下的任意截面的弯矩,挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs,vs,Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度L(m):\n");scanf("%lf",&l);printf("请输入弹性模量E(Pa):\n");scanf("%lf",&E);printf("请输入极惯性矩I(m^4):\n");scanf("%lf",&I);printf("请输入集中载荷F的个数n(个):\n");scanf("%d",&nF);printf("请输入集中载荷F(N)的值和位置a(m):\n");for(i=0;i{printf("集中力%d:",i+1);scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数n(个):\n");scanf("%d",&nM);printf("请输入外力偶值M(M*m)和位置b(m):\n");for(i=0;i{printf("外力偶%d:",i+1);scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数n(个):\n");scanf("%d",&nq);printf("请输入分布力值q(N/m)和起始位置x1(m)和终止位置x2(m):\n");for(i=0;i{printf("分布力%d:",i+1);scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x(m):\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i];vs=vs+v[i];}printf("截面的弯矩为%f\n",Mzs);printf("截面的挠度为%f\n",vs);} 运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算Mz=-1624.00NmV=0.000395m问题5:n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intj;intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入集中载荷F的个nF:");scanf("%d",&nF);printf("请输入集中载荷F的值和位置a:");for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
Mz=F*a*(l-x)/l;
v=-F*b*(l/b*pow(x-a,3)+(l*l-b*b)*x-x*x*x)/(6*E*I*l);
else
printf("數值溢出\n");
运算结果:
输入:
选取材料的L=1m,E=4.5GPa。
I=0.0001
,F=1000N,a=0.6m,x=0.4m;
理论值计算
Mz=160.00Nm
V=-0.000040m
问题2:
一个力偶作用下的任意截面的弯矩,挠度
doubleMz,l,a,x,v,E,I,b,M;
printf("请输入弯矩M\n");
scanf("%lf",&M);
if(x>0&&x{Mz=M*x/l;v=M*x*(l*l-3*b*b-x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}elseif(x>a&&x{Mz=M*(l-x)/l;v=M*(-x*x*x+3*l*(x-a)*(x-a)+(l*l-3*b*b)*x);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數值溢出\n");}}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,M=1000Nm,a=0.6m,x=0.4m;理论值计算Mz=400.00NmV=0.000053m问题3:一段分布力作用下的任意截面的弯矩挠度编程:#include#includedoubleq,l,c,d,x,E,I,v,Mz;doubleC,D,Ec,Fc;doubleFR1,FR2;/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}main(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入分布力q\n");scanf("%lf",&q);printf("请输入长度c\n");scanf("%lf",&c);printf("请输入长度d\n");scanf("%lf",&d);printf("请输入x\n");scanf("%lf",&x);C=qiyi(x,c);D=qiyi(x,d);FR2=(-q*(d*d-c*c)/2)/l;//求支反力FR1=-q*(d-c)-FR2;Ec=-(FR1*pow(l,3)/6-q*pow(l-c,4)/24+q*pow(l-d,4)/24)/E/I/l;Fc=0;Mz=(FR1*x-0.5*q*C*C+0.5*q*D*D);v=(FR1*pow(x,3)/6-q*pow(C,4)/24+q*pow(D,4)/24)/E/I+Ec*x;printf("截面的弯矩为:%f\n",Mz);printf("截面的挠度为:%f\n",v);}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,q=1000N,c=0.6m,d=0.8m,x=0.4m;理论值计算Mz=-24.00NmV=0.000008m问题4:n个力,h个力偶,m段分布力共同作用下的任意截面的弯矩,挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs,vs,Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度L(m):\n");scanf("%lf",&l);printf("请输入弹性模量E(Pa):\n");scanf("%lf",&E);printf("请输入极惯性矩I(m^4):\n");scanf("%lf",&I);printf("请输入集中载荷F的个数n(个):\n");scanf("%d",&nF);printf("请输入集中载荷F(N)的值和位置a(m):\n");for(i=0;i{printf("集中力%d:",i+1);scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数n(个):\n");scanf("%d",&nM);printf("请输入外力偶值M(M*m)和位置b(m):\n");for(i=0;i{printf("外力偶%d:",i+1);scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数n(个):\n");scanf("%d",&nq);printf("请输入分布力值q(N/m)和起始位置x1(m)和终止位置x2(m):\n");for(i=0;i{printf("分布力%d:",i+1);scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x(m):\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i];vs=vs+v[i];}printf("截面的弯矩为%f\n",Mzs);printf("截面的挠度为%f\n",vs);} 运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算Mz=-1624.00NmV=0.000395m问题5:n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intj;intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入集中载荷F的个nF:");scanf("%d",&nF);printf("请输入集中载荷F的值和位置a:");for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
Mz=M*x/l;
v=M*x*(l*l-3*b*b-x*x)/(6*E*I*l);
elseif(x>a&&x{Mz=M*(l-x)/l;v=M*(-x*x*x+3*l*(x-a)*(x-a)+(l*l-3*b*b)*x);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數值溢出\n");}}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,M=1000Nm,a=0.6m,x=0.4m;理论值计算Mz=400.00NmV=0.000053m问题3:一段分布力作用下的任意截面的弯矩挠度编程:#include#includedoubleq,l,c,d,x,E,I,v,Mz;doubleC,D,Ec,Fc;doubleFR1,FR2;/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}main(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入分布力q\n");scanf("%lf",&q);printf("请输入长度c\n");scanf("%lf",&c);printf("请输入长度d\n");scanf("%lf",&d);printf("请输入x\n");scanf("%lf",&x);C=qiyi(x,c);D=qiyi(x,d);FR2=(-q*(d*d-c*c)/2)/l;//求支反力FR1=-q*(d-c)-FR2;Ec=-(FR1*pow(l,3)/6-q*pow(l-c,4)/24+q*pow(l-d,4)/24)/E/I/l;Fc=0;Mz=(FR1*x-0.5*q*C*C+0.5*q*D*D);v=(FR1*pow(x,3)/6-q*pow(C,4)/24+q*pow(D,4)/24)/E/I+Ec*x;printf("截面的弯矩为:%f\n",Mz);printf("截面的挠度为:%f\n",v);}运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,q=1000N,c=0.6m,d=0.8m,x=0.4m;理论值计算Mz=-24.00NmV=0.000008m问题4:n个力,h个力偶,m段分布力共同作用下的任意截面的弯矩,挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs,vs,Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度L(m):\n");scanf("%lf",&l);printf("请输入弹性模量E(Pa):\n");scanf("%lf",&E);printf("请输入极惯性矩I(m^4):\n");scanf("%lf",&I);printf("请输入集中载荷F的个数n(个):\n");scanf("%d",&nF);printf("请输入集中载荷F(N)的值和位置a(m):\n");for(i=0;i{printf("集中力%d:",i+1);scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数n(个):\n");scanf("%d",&nM);printf("请输入外力偶值M(M*m)和位置b(m):\n");for(i=0;i{printf("外力偶%d:",i+1);scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数n(个):\n");scanf("%d",&nq);printf("请输入分布力值q(N/m)和起始位置x1(m)和终止位置x2(m):\n");for(i=0;i{printf("分布力%d:",i+1);scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x(m):\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i];vs=vs+v[i];}printf("截面的弯矩为%f\n",Mzs);printf("截面的挠度为%f\n",vs);} 运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算Mz=-1624.00NmV=0.000395m问题5:n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intj;intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入集中载荷F的个nF:");scanf("%d",&nF);printf("请输入集中载荷F的值和位置a:");for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
Mz=M*(l-x)/l;
v=M*(-x*x*x+3*l*(x-a)*(x-a)+(l*l-3*b*b)*x);
,M=1000Nm,a=0.6m,x=0.4m;
Mz=400.00Nm
V=0.000053m
问题3:
一段分布力作用下的任意截面的弯矩挠度
doubleq,l,c,d,x,E,I,v,Mz;
doubleC,D,Ec,Fc;
doubleFR1,FR2;
/*函数功能:
奇异函数*/
doubleqiyi(doublex,doubley)
if(x<=y)
return0;
if(x>y)
returnx-y;
printf("请输入分布力q\n");
scanf("%lf",&q);
printf("请输入长度c\n");
scanf("%lf",&c);
printf("请输入长度d\n");
scanf("%lf",&d);
C=qiyi(x,c);
D=qiyi(x,d);
FR2=(-q*(d*d-c*c)/2)/l;//求支反力
FR1=-q*(d-c)-FR2;
Ec=-(FR1*pow(l,3)/6-q*pow(l-c,4)/24+q*pow(l-d,4)/24)/E/I/l;
Fc=0;
Mz=(FR1*x-0.5*q*C*C+0.5*q*D*D);
v=(FR1*pow(x,3)/6-q*pow(C,4)/24+q*pow(D,4)/24)/E/I+Ec*x;
printf("截面的弯矩为:
%f\n",Mz);
printf("截面的挠度为:
%f\n",v);
,q=1000N,c=0.6m,d=0.8m,x=0.4m;
Mz=-24.00Nm
V=0.000008m
问题4:
n个力,h个力偶,m段分布力共同作用下的任意截面的弯矩,挠度。
doubleF[10],M[10],q[10];//定义各个载荷大小的数组
doubleMz[10],v[10],l,E,I,Mzs,vs,Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数
doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标
doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量
doubleEc[10],Fc[10];//定义积分常数
doublex;//定义任一截面横坐标
doubleFR1[10],FR2[10];//定义支反力FR1,FR2
inti,Q;//定义循环变量
intnM,nF,nq,nn;//定义载荷个数
初始数据输入*/
voidps()
printf("请输入长度L(m):
\n");
printf("请输入弹性模量E(Pa):
printf("请输入极惯性矩I(m^4):
printf("请输入集中载荷F的个数n(个):
scanf("%d",&nF);
printf("请输入集中载荷F(N)的值和位置a(m):
for(i=0;i{printf("集中力%d:",i+1);scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数n(个):\n");scanf("%d",&nM);printf("请输入外力偶值M(M*m)和位置b(m):\n");for(i=0;i{printf("外力偶%d:",i+1);scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数n(个):\n");scanf("%d",&nq);printf("请输入分布力值q(N/m)和起始位置x1(m)和终止位置x2(m):\n");for(i=0;i{printf("分布力%d:",i+1);scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x(m):\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i];vs=vs+v[i];}printf("截面的弯矩为%f\n",Mzs);printf("截面的挠度为%f\n",vs);} 运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算Mz=-1624.00NmV=0.000395m问题5:n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intj;intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入集中载荷F的个nF:");scanf("%d",&nF);printf("请输入集中载荷F的值和位置a:");for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
printf("集中力%d:
",i+1);
scanf("%lf%lf",&F[i],&a[i]);
printf("请输入外力偶M的个数n(个):
scanf("%d",&nM);
printf("请输入外力偶值M(M*m)和位置b(m):
for(i=0;i{printf("外力偶%d:",i+1);scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数n(个):\n");scanf("%d",&nq);printf("请输入分布力值q(N/m)和起始位置x1(m)和终止位置x2(m):\n");for(i=0;i{printf("分布力%d:",i+1);scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x(m):\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i];vs=vs+v[i];}printf("截面的弯矩为%f\n",Mzs);printf("截面的挠度为%f\n",vs);} 运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算Mz=-1624.00NmV=0.000395m问题5:n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intj;intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入集中载荷F的个nF:");scanf("%d",&nF);printf("请输入集中载荷F的值和位置a:");for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
printf("外力偶%d:
scanf("%lf%lf",&M[i],&b[i]);
printf("请输入均布力的个数n(个):
scanf("%d",&nq);
printf("请输入分布力值q(N/m)和起始位置x1(m)和终止位置x2(m):
for(i=0;i{printf("分布力%d:",i+1);scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x(m):\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i];vs=vs+v[i];}printf("截面的弯矩为%f\n",Mzs);printf("截面的挠度为%f\n",vs);} 运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算Mz=-1624.00NmV=0.000395m问题5:n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intj;intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入集中载荷F的个nF:");scanf("%d",&nF);printf("请输入集中载荷F的值和位置a:");for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
printf("分布力%d:
scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);
printf("请输入任一截面横坐标x(m):
nn=nF;//找到最大载荷数
if(nM>nn)
nn=nM;
if(nq>nn)
nn=nq;
ps();//初始数据输入
for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i];vs=vs+v[i];}printf("截面的弯矩为%f\n",Mzs);printf("截面的挠度为%f\n",vs);} 运算结果:输入:选取材料的L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算Mz=-1624.00NmV=0.000395m问题5:n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。编程:#include#includedoubleF[10],M[10],q[10];//定义各个载荷大小的数组doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数doublea[10],b[10],c[10],d[10];//定义各个载荷的横坐标doubleA[10],B[10],C[10],D[10];//定义奇异函数中间变量doubleEc[10],Fc[10];//定义积分常数doublex;//定义任一截面横坐标doubleFR1[10],FR2[10];//定义支反力FR1,FR2inti,Q;//定义循环变量intj;intnM,nF,nq,nn;//定义载荷个数/*函数功能:奇异函数*/doubleqiyi(doublex,doubley){if(x<=y)return0;if(x>y)returnx-y;}/*函数功能:初始数据输入*/voidps(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入集中载荷F的个nF:");scanf("%d",&nF);printf("请输入集中载荷F的值和位置a:");for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
A[i]=qiyi(x,a[i]);
B[i]=qiyi(x,b[i]);
C[i]=qiyi(x,c[i]);
D[i]=qiyi(x,d[i]);
FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力
FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];
Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数
if(x<=b[i])
Q=0;
if(x>b[i])
Q=1;
Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;
v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;
Mzs=Mzs+Mz[i];
vs=vs+v[i];
printf("截面的弯矩为%f\n",Mzs);
printf("截面的挠度为%f\n",vs);
,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;
Mz=-1624.00Nm
V=0.000395m
问题5:
n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。
doubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定义杆的基本参数
intj;
printf("请输入集中载荷F的个nF:
");
printf("请输入集中载荷F的值和位置a:
for(i=0;i{scanf("%lf%lf",&F[i],&a[i]);}printf("请输入外力偶M的个数nM");scanf("%d",&nM);printf("请输入外力偶值和位置b:");for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
printf("请输入外力偶M的个数nM");
printf("请输入外力偶值和位置b:
for(i=0;i{scanf("%lf%lf",&M[i],&b[i]);}printf("请输入均布力的个数nq");scanf("%d",&nq);printf("请输入分布力q的值和位置c,d:");for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
printf("请输入均布力的个数nq");
printf("请输入分布力q的值和位置c,d:
for(i=0;i{scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("请输入任一截面横坐标x\n");scanf("%lf",&x);nn=nF;//找到最大载荷数if(nM>nn)nn=nM;if(nq>nn)nn=nq;}main(){ps();//初始数据输入for(j=0;j<99;j++){x=j*l/100;for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
printf("请输入任一截面横坐标x\n");
for(j=0;j<99;j++)
x=j*l/100;
for(i=0;i{A[i]=qiyi(x,a[i]);B[i]=qiyi(x,b[i]);C[i]=qiyi(x,c[i]);D[i]=qiyi(x,d[i]);FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求积分常数if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs[j]=Mzs[j]+Mz[i];vs[j]=vs[j]+v[i];}if(Mzs[j]>Mzmax)Mzmax=Mzs[j];if(vs[j]>vmax)vmax=vs[j];if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
Mzs[j]=Mzs[j]+Mz[i];
vs[j]=vs[j]+v[i];
if(Mzs[j]>Mzmax)
Mzmax=Mzs[j];
if(vs[j]>vmax)
vmax=vs[j];
if(Mzs[j]Mzmin=Mzs[j];if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
Mzmin=Mzs[j];
if(vs[j]vmin=vs[j];}printf("最大弯矩为Mzmax=%f\n",Mzmax);printf("最大挠度为vmax=%f\n",vmax);printf("最小弯矩为Mzmin=%f\n",Mzmin);printf("最小挠度为vmin=%f\n",vmin);}运算结果:输入:L=1m,E=4.5GPa。I=0.0001,F[1]=1000N,F[2]=2000N,a[1]=0.6m,a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理论值计算:Mzmax=-2466.00Nm,Vmax=0.000427m 作业总结此次材料力学上机颇有心得。此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。在这个过程中,我和同组的张宁波同学通力合作,努力完成。对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。这个过程增强了我们的编程能力,也增强了我们的学习能力。更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
vmin=vs[j];
printf("最大弯矩为Mzmax=%f\n",Mzmax);
printf("最大挠度为vmax=%f\n",vmax);
printf("最小弯矩为Mzmin=%f\n",Mzmin);
printf("最小挠度为vmin=%f\n",vmin);
L=1m,E=4.5GPa。
理论值计算:
Mzmax=-2466.00Nm,Vmax=0.000427m
作业总结
此次材料力学上机颇有心得。
此次试验不仅要求有一定的编程能力,更要求对材料力学的基本方法较为了解。
在这个过程中,我和同组的张宁波同学通力合作,努力完成。
对于大一C语言学的不是很专业的我们来说,需要捡起以前的知识,需要学习以前不曾学习的东西。
由于课业较忙,我们没有完成C语言图形编程的模块,只是以简单的“输入输出”方式进行模拟。
这个过程增强了我们的编程能力,也增强了我们的学习能力。
更为重要的是,我们发现了传统材料力学与计算机科学相结合所形成的巨大力量,对于建立模型,分析模型的方法也有所领悟。
本次变成我们二人采取了循序渐进的方式,所编的程序由易到难,一点一点的实验,力求使步伐更为稳健。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1