matlab可用于各行各业的应用中,现在我们就简单画一个拱桥试一试。
r=input('请输入半径: '); z=input('请输入弧度: '); figure() %r=4; %画拱洞,用李萨如图形法 x=15; y=0; nseg=1000; theta = 0 : (2 * pi / nseg) : (2 * pi); pline_x = r * cos(theta) + x; pline_y = r * sin(theta) + y; plot(pline_x, pline_y); axis([0 30 -8 8]); %限定坐标范围 hold on; %画水面 x1=0:0.1:30; y1=zeros(size(x1)); plot(x1,y1) hold on; %画测量数据 xg=0:2:30; yg=[4,4.2,4.6,4.8,5,5.3,6.4,6.9,6.7,6.1,5.6,5.1,4.7,4.4,4,3.6]; plot(xg,yg,'o') hold on %画拱桥 xxg=-100:0.1:100; p=polyfit(xg,yg,2); % 拟合出的二次函数的系数 yyg=polyval(p,xxg); % 拟合曲线的纵坐标 xxg=xxg(yyg>=0); yyg=yyg(yyg>=0); %画倒影 plot(xxg,yyg) hold on plot(xxg,-yyg) hold on fill(xxg,-yyg,'b') fill(pline_x, pline_y,'w') %计算面积 xxg2=0:0.1:30; yyg2=yyg(find(xxg==0):find(xxg==30)); %polyarea(xxg2,yyg) Aera=trapz(xxg2,yyg2)-pi/2*r^2; disp(['面试是: ',num2str(Aera)]) %进行安全度分析 if(z>0.1) disp('经过安全性分析,该拱桥在应用中可能存在安全隐患。') else disp('经过安全性分析,该拱桥的安全性良好,可以使用。') end
那么最后的结果是