当前位置:   article > 正文

数学建模--浅谈多波束测线问题_多波束测距的航线一定是直线吗

多波束测距的航线一定是直线吗

目录

1.问题说明

2.问题分析

3.代码分析


1.问题说明

这个是国赛的真题,我们这个里面只是浅谈,就是对于这个里面运用的过程仿真的思路进行说明,这个探测的波束问题实际上也是一个简单的过程仿真问题,也是需要去进行作图的,和之前的这个4个人相互追逐的问题属于一类问题--过程仿真问题;

实际赛题里面还考虑了重合率等等的相关信息,我们这个里面只是简单的说明一下仿真思想的体现,简单运用,编写过程的程序,所以不会考虑重合率等其他的问题;

2.问题分析

我们的这个游艇实际上就是来回的进行巡回的过程,我们需要计算经过几次可以全部检测完成这片的海域;

这个实际上就是一个数学问题,我们思路就是构建直线方程,联立方程求解点的坐标,根据点的坐标计算距离,知道这个水平行走距离大于L的时候,这个海域就会全部被检测完成;

这关键就是求解x1,y1和x2,y2点的坐标,这个时候就需要构建直线方程,就是简单的点斜式,利用已知的直线方程,这个里面的直线方程包括这个斜面的直线方程,还有就是x1y1这个点左边的直线方程,和x1y1右边的直线方程,左边的斜率使用的是kl表示的,kr表示的就是右边的斜率;

3.代码分析

  1. clc;
  2. clear;
  3. %海底的深度大小
  4. L=10000;
  5. %%这个就是坡度的偏角
  6. alfa=pi/100;
  7. %探测的张角大小
  8. beta=pi/3;
  9. %%海水的深度
  10. h=1000;
  11. %%海底平面的斜率
  12. k=tan(alfa);
  13. %%左边的直线的斜率
  14. kl=tan(pi/2-beta/2);
  15. %%右边的直线的斜率
  16. kr=tan(beta/2-pi/2);
  17. %%左侧初始探测点的坐标
  18. x2=0;
  19. y2=0;
  20. %%初始点测量船的坐标
  21. x1=(h+kl*x2-y2)/kl; %%这个就是直线方程联立求解的点的坐标
  22. y1=h;
  23. xx1=x1; %%这四个式子就是把新的数据更新到我们的向量里面
  24. xx2=x2; %%后面的作图的时候,需要用到这个向量
  25. yy1=y1;
  26. yy2=y2;
  27. for i=1:1000
  28. %%这个就是联立求解的点的坐标,上面已经出现过
  29. x2=(y1-kr*x1)/(k-kr);
  30. y2=k*x2;
  31. %%根据x2的坐标确定求解的
  32. x1=(h+kl*x2-y2)/kl;
  33. y1=h;
  34. %%不断地添加新的数据
  35. xx1=[xx1 x1];
  36. xx2=[xx2 x2];
  37. yy1=[yy1 y1];
  38. yy2=[yy2 y2];
  39. %%循环的终止的条件
  40. if x2>=L
  41. break;
  42. end
  43. end
  44. %%下面的这个就是绘制的斜面的图形,就只有一条线
  45. plot([0 L],[0,L*tan(alfa)]);
  46. hold on
  47. plot([0 L],[h h],'k');
  48. %%下面是使用的循环语句绘制探测波束的图形
  49. %%实际上就是一个迭代的过程,理解清楚就好了
  50. for i=1:length(xx1)-1
  51. plot([xx1(i) xx2(i)],[yy1(i) yy2(i)],'r');
  52. plot([xx1(i) xx2(i+1)],[yy1(i) yy2(i+1)],'r');
  53. end

相关的代码解释和注意说明已经作为注释写了进去,请注意查看理解;~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/981215
推荐阅读
相关标签
  

闽ICP备14008679号