1、梁弯曲分析,自由振动分析的C程序程序:#includemath.h#includestdio.hfloatzgxj(floatb,floath)/*轴惯性矩计算子程序*/{floatI;I=b*h*h*h/12;return(I);}voidmain()/*主函数*//**/{inti,j;floata[4][4];floatL,b,h,jz,l;/*设置轴的长度、周截面的高度h、宽带b、轴惯性矩、梁单元长度*/intN;/*设置节点数量N*/floatE;/*刚度系数模量*/printf(请输入刚度系数:);scanf(%f,&E);printf(\n);printf(请输入杆的长度:);scanf(%f,&L);printf(\n);printf(请输入杆的宽带和高度(数据之间用空格隔开):);scanf(%f%f,&b,&h);printf(\n);printf(请需要输入划分的节点数量(建议不要太大20):);scanf(%d,&N);printf(\n);jz=zgxj(b,h);/*计算轴惯性矩的值*/l=L/(N+1);/*求梁单元长度*/a[0][0]=12*E*jz/(l*l*l);/*计算刚度矩阵*/a[0][1]=6*E*jz/(l*l);a[0][2]=(-12)*E*jz/(l*l*l);a[0][3]=6*E*jz/(l*l);a[1][0]=6*E*jz/(l*l);a[1][1]=4*E*jz/l;a[1][2]=(-6)*E*jz/(l*l);a[1][3]=2*E*jz/l;a[2][0]=(-12)*E*jz/(l*l*l);a[2][1]=(-6)*E*jz/(l*l);a[2][2]=12*E*jz/(l*l*l);a[2][3]=(-6)*E*jz/(l*l);a[3][0]=6*E*jz/(l*l);a[3][1]=2*E*jz/(l*l);a[3][2]=(-6)*E*jz/(l*l);a[3][3]=4*E*jz/l;printf(梁单元刚度矩阵K:\n);for(i=0;i=3;i++)/*输出刚度矩阵*/{for(j=0;j=3;j++){printf(%.1f,a[i][j]);}printf(\n);}}#includestdio.h#includemath.hfloatzgxj(floatb,floath)/*轴惯性矩计算子程序*/{floatI;I=b*h*h*h/12;return(I);}(2)求振动频率的程序floatzizhen(floatE,floatI,floatm,floatL,inti)/*模特分析子程序,用于输出前各阶自振频率*/{floatf;floata[4]={3.516,22.03,61.7,120.9};f=a[i]*sqrt((E*I/m)/L/L);/*计算前四阶自振频率*/return(f);/*返回单前频率*/}voidmain()/*主函数*/{floatL,b,h,iz;/*设置轴的长度、周截面的高度h、宽带b、轴惯性矩*/inti,j;/*设置节点数量N*/floatE,m;floata[4]={3.516,22.03,61.7,120.9},f[4];/*定义影响系数和自振频率的字符*/printf(请输入刚度系数:);scanf(%f,&E);printf(\n);printf(请输入杆的长度:);scanf(%f,&L);printf(\n);printf(请输入杆的宽带和高度(数据之间用空格隔开):);scanf(%f%f,&b,&h);printf(\n);printf(请输入线密度(单位:kg/立方米):);scanf(%f,&m);printf(\n);iz=zgxj(b,h);for(i=0;i=3;i++)/*循环计算各阶频率*/{f[i]=zizhen(E,iz,m,L,i);j=i+1;printf(第%d阶的频率为%frad/s\n,j,f[i]);}}运算结果如图1.1所示图1.1