欢迎来到天天文库
浏览记录
ID:53673384
大小:41.00 KB
页数:5页
时间:2020-04-05
《用Matlab实现直线插补计算程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、姓名:学号:班级:用Matlab实现直线插补计算程序clear;F=0;x=0;y=0;dx=0.5;dy=0.6;xe=-5;ye=-6;K=ye/xe;xx(1)=x;yy(1)=y;index=2;while(1)if(F>=0)if(xe>0)x=x+dx;elsex=x-dx;endy=y;F=abs(xe*y)-abs(ye*x);elseif(ye>0)y=y+dy;elsey=y-dy;endx=x;F=abs(xe*y)-abs(ye*x);endif(abs(F)<=0.01)F=0;endxx(in
2、dex)=x;yy(index)=y;index=index+1;if((abs(x)+abs(y))>=(abs(xe)+abs(ye)))break;endendif(xe>0)xxx=0:0.01:xe;elsexxx=0:-0.001:xe;endyyy=K*xxx;if(xe>0)plot(xx,yy,'g>',xxx,yyy,'b');elseplot(xx,yy,'g-<',xxx,yyy,'b');endgridon;图表1当dx=0.5;dy=0.6;xe=-5;ye=-6;时,结果如图表1所示。图表2
3、当dx=0.6;dy=0.4;xe=6;ye=4;时结果如图标2所示,结果显示多走了一步,原因是matlab在倒数第二步计算if((abs(x)+abs(y))>=(abs(xe)+abs(ye)))时,结果不为0,仍需继续走一步。可以对程序做进一步修改:加入条件dmin=min(dx,dy)/2;并把if((abs(x)+abs(y))>=(abs(xe)+abs(ye)))修改成if(abs(abs(x)+abs(y)-abs(xe)-abs(ye))4、和简化的偏差计算公式,结果如图表4所示;我们发现对于,简化的偏差计算不适用于不等步长的情况。图表4在土表所采用的程序基础上对偏差计算公式做一个修改,F=F-abs(ye*dx);F=F+abs(xe*dy);计算结果如图表5所示,此方法在该条件下适用。图表5
4、和简化的偏差计算公式,结果如图表4所示;我们发现对于,简化的偏差计算不适用于不等步长的情况。图表4在土表所采用的程序基础上对偏差计算公式做一个修改,F=F-abs(ye*dx);F=F+abs(xe*dy);计算结果如图表5所示,此方法在该条件下适用。图表5
此文档下载收益归作者所有