切线飞行轨迹图,MATLAB代码分享

浅浅写一个切线飞行轨迹图,不能保证百分百正确!

%公众号:淘个代码

clear
clc
close all
% Mantegna方法模拟切线飞行
x = [0,0];
y = [0,0];

for i=1:1000
    teta=rand.*pi/2.01;  % % 如果这里除以2,会变成无穷大,因此这里可以在2后面加个很小的值。这里加的是0.01,这个值加的越小,那么正切搜索的步长就越大!
    step = 0.5*sign(rand-0.5).*tan(teta);  % 控制飞行方向与步长,sign是一个符号函数,tan(teta)就是步长
    x(:,1) = x(:,2);
    x(:,2) = x(:,1)+step;
    teta=rand.*pi/2.01;  % the tangent angle
    step = 0.5*sign(rand-0.5).*tan(teta);  % 
    y(:,1) = y(:,2);
    y(:,2) = y(:,1)+step;
    plot(x,y);
    hold on;
end
xlabel('X');
ylabel('Y');
title('Tangent Flight Random Walk');

结果如下:

可以看到,相对于莱维飞行图来说,这里每一步的步长都会很大!

再来一次!(这里除以了2.001,这样步长更大了!可以看到,都干到1000了,正常的智能算法改进中,应该不用这么大)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天吃饺子

不想刀我的可以选择爱我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值