关于最速曲线的介绍有

http://zhidao.baidu.com/s/daily/2014-04-21/1403015178.html

内容比较丰富,还比较好玩

最速曲线公式

理论解很久之前就已经有了,如下

我找了半天也没有找到这个理论解是如何求出来的方法,但是我找到了一篇怎样用数值方法求最速曲线的算法,这篇文章的题目是《应用斯涅尔公式求解最速下降曲线问题研究》,在百度文库中有。这个方法我觉得很有意思,就在matlab中实现了这个算法。

特别要注意的是文章中提到的,如果入射角大于90°时,要考虑全反射,也就是入射角从正变为负,下降变为上升。

Matlab代码如下

<span style="font-size:18px;">x0 = 10;
y0 = 10;syms x;
f = (1-cos(x)) / (x - sin(x)) - y0 / x0;
x = vpasolve(f);       %数值求解器
K = x0 / (x - sin(x));s = 0:0.01:x;
x = K*(s - sin(s));
y = K*(1 - cos(s));
plot(x,y, 'r-');
view([0,0,-1]);
hold on;
%-----------------------------------------上面是理论的结果-----------------------------------% 下面用数值方法求解最速曲线
etof = 1e-2;         %误差,精度为0.1
a0 = 0;        % 入射角的边值
a1 = pi/30;    %dex = 0.1;        %最大步长
dey = 0.1;while 1a_init = (a0 + a1) / 2;   % 入射角的初值a = a_init;dx = dex;   %起始步长dy = cot(a) * dx;while (dy > dey)dx = dx / 10;         %细化步长dy = cot(a) * dx;endx = dx;y = dy;while (x + dx <= x0)yt = y + cot(a) * dx;if (yt < 0) break;         %已久上升到初始高度,结束endif (sin(a) / sqrt(y) * sqrt(yt) >= 1)            % 考虑全反射a = -a; yt = y + cot(a) * dx;endat = asin(sin(a) / sqrt(y) * sqrt(yt));x = x + dx;y = yt;a = at;dy = cot(a) * dx;while (dy < dey / 10 && dx  < dex)             %适当放大步长dx = dx * 10;dy = cot(a) * dx;endendif (abs(y - y0) < etof && x + dx > x0)break;endif (x + dx <= x0 || y < y0)a1 = a_init;elsea0 = a_init;end
enda = (a0 + a1) / 2;scatter(0, 0, 'go');
dx = dex;
dy = cot(a) * dx;
while (dy > dey)dx = dx / 10;dy = cot(a) * dx;
end
scatter(dx, dy, 'go');
x = dx;
y = dy;
while (x + dx<= x0)yt = y + cot(a) * dx;if (sin(a) / sqrt(y) * sqrt(yt) >= 1)a = -a;yt = y + cot(a) * dx;endat = asin(sin(a) / sqrt(y) * sqrt(yt));x = x + dx;y = yt;a = at;scatter(x, y, 'go');dy = cot(a) * dx;while (dy < dey / 10 && dx < dex)dx = dx * 10;dy = cot(a) * dx;end
end</span>

效果如下

采用数值方法计算最速曲线相关推荐

  1. python 采用数值方法计算最速曲线

    原文:https://blog.csdn.net/WhoisPo/article/details/47149395

  2. R计算获取决策曲线数据(Decision Curve Analysis,DCA)并使用python进行可视化

    R计算获取决策曲线数据(Decision Curve Analysis,DCA)并使用python进行可视化 目录 R计算获取决策曲线数据(Decision Curve Analysis,DCA)并使 ...

  3. python 最速曲线

    关于最速曲线的介绍有 http://zhidao.baidu.com/s/daily/2014-04-21/1403015178.html 内容比较丰富,还比较好玩 最速曲线公式 理论解很久之前就已经 ...

  4. [team]开发中的“最速曲线”

    最速曲线是一个物理中的概念,也就是小球从左上到右下,最快的曲线是红色的这条,这个和我们直觉中的"两点之间直线最短"有点不一样: 当然其原理就是最速曲线是一个平滑,且能保证全程速度很 ...

  5. 采用递归方法计算x的n次方。

    采用递归方法计算x的n次方. **输入格式要求:"%d%d" 提示信息:"x=? n=?" **输出格式要求:"%d**%d=%d\n" 程 ...

  6. vegan稀释曲线 基因丰度_R语言 vegan包计算物种累计曲线

    vegan 包是进行群落数据分析最常用的R包,其中的 specaccum 函数用来计算物种的累计曲线 首先看下官方示例: library(vegan) data(BCI) sp1 plot(sp1, ...

  7. Origin计算多条曲线的峰面积

    背景介绍 前几天对一个自己造的化合物使用紫外(UV)进行全波长扫描,虽然波长是扫出来了,但是如何对每条曲线进行积分求峰的面积,以此进行下一步计算呢? 积分教程 下面是我们的一组数据,数据是从机器上直接 ...

  8. 详解scikit-learn计算ROC/AUC曲线

    ROC和AUC定义 ROC全称是"受试者工作特征"(Receiver Operating Characteristic).ROC曲线的面积就是AUC(Area Under the ...

  9. 哪些物联网应用最适合采用雾计算?

    有时在做出判断时真的是要靠自己,让别人为你指出方向是不可行的. 许多物联网系统所面临的情景与此相同.集中处理大量传感器数据会减慢决策,并增加带宽需求.而做出明智的决策最好靠近源头. 哪些决策应该靠近网 ...

  10. 绘制ROC 曲线 计算 AUC PR曲线(精准率 召回率)示例

    #一 ROC评价 及曲线  AUC的值   准确率 auc 的参数来自假阳率 真阳率,一般与 metrics.roc_curve配合使用,来自sklearn正规示例网站 >>> fp ...

最新文章

  1. React入门---事件与数据的双向绑定-9
  2. 如何将 Linq 的查询结果转为 HashSet ?
  3. jvm fastdebug
  4. Java基础知识学习(七)
  5. android fragment实例化,Android使得Fragment 切换时不重新实例化
  6. 六石管理学:考评不要与自己为难
  7. git上传本地文件方法
  8. f3 fatfree小型php,F3-fatfree小型php框架教程(三)
  9. 系统分析师 VS 系统架构设计师,哪个证书含金量比较高?
  10. SoapUI接口测试实战
  11. Excel大家来找茬,两列数据对比找出不同数据
  12. xp计算机连接不上网络打印机驱动,XP系统下如何设置连接网络打印机?
  13. handsome对应php文件,基于handsome主题的一些美化总结
  14. 16年,悲痛又收获的一年
  15. 他狂骗五千万美元消失17年...却被一个纪录片导演锲而不舍的追到了镜头前!...
  16. 他两次都没感动CCTV,却真正感动了中国
  17. 黑群晖USB直连计算机,群辉(黑群辉)自动/定时备份U盘数据到硬盘内--原创
  18. 记调剂有感-一首小诗
  19. arp miss攻击_详述网络中ARP安全的综合功能
  20. 2015年计算机应用基础试题及答案,2015年4月自考00018计算机应用基础真题及答案...

热门文章

  1. 如何解决电脑触控板不能使用的问题 (双指上下滑动翻页)
  2. 2022年数模美赛注意事项
  3. iOS —— 极光推送和极光IM
  4. wsdl2java 命令 服务端_使用Axis2中的工具wsdl2Java的生成客户端和服务端代码
  5. 【python】批量替换文本中的某部分内容
  6. python公众号文章_python微信公众号文章爬取
  7. Modelsim10.4-win64软件下载安装与破解
  8. 微信小程序icon图标使用详解
  9. HttpUtil工具类
  10. xshell免费版下载安装及使用