`

求点到曲线的最短距离 垂直逼近算法

 
阅读更多

y = ln(x) + Math.pow(x,0.000333) + Math.exp(x*x) + x *x

求 (1,2)到该曲线的最短距离。很简单就是  Math.pow((y - 2)*(y - 2) + (x-1)(x-1),0.5)  

求最大值或求导无法求得此距离。或者是  (y-2)/(x-1)  * y' = -1  

这个时候就需要利用算法来求得此距离。

这里引入垂直逼近的概念

思想是假定一个切点与此点垂直,那么逐渐的向真的切点靠近,知道与真实切点的误差在一个很小的误差范围内

这个时候得到的此点即为  切点,求出距离很容易

 

具体步骤是:

假定当前点x  在曲线上的点为 假定切点,对曲线做一条切线,然后此点对x做一条垂直线,此垂点为下一个假定切点再迭代下去,直到最后此垂直点越来越接近曲线。然后直到曲线上,那么此点位真实的切点。

求得的距离为最短距离

 

这里不适合多个垂直的情况。。。针对此情况很简单比较下就行了

分享到:
评论

相关推荐

    Christofides算法,最短路径逼近算法

    Christofides算法,最短路径逼近算法

    基于矩阵的求最短路的逐次逼近算法及MATLAB实现.pdf

    在逐次逼近算法中,如果从起点vi先到达某点vj,然后通过边(vi, vj)到达终点vk,则vi到vk的路径也是最短路径。文章提出了一个基于矩阵的逐次逼近算法,该算法首先设置一个初始权矩阵,然后使用特定的迭代公式来更新...

    遗传算法最短路径MATLAB程序

    通过模拟生物进化过程,包括选择、交叉和变异操作,遗传算法可以逐步逼近最短路径的解决方案。 1. **选择操作**:这是遗传算法的核心步骤,根据个体的适应度进行选择,通常采用轮盘赌选择法或者锦标赛选择法。适应...

    等距曲线逼近算法等距曲线逼近算法.pdf

    等距曲线逼近算法是计算机辅助几何设计(CAGD)中的关键技术,它涉及如何创建一个与原始曲线保持恒定距离的新曲线。等距曲线在机械工程、航空设计、建筑设计等多个领域有着广泛的应用,例如在制造过程中用于创建零件...

    求两个点之间最短路径

    1. Dijkstra算法:这是一种贪心算法,通过不断扩展当前最短路径来逐步逼近全局最短路径。它维护一个优先队列(通常使用二叉堆实现),每次取出距离源节点最近的节点,更新其邻居节点的距离。Dijkstra算法保证了找到...

    dijkstra算法_算法_最短路径_dijkstra算法_Dijsktra_

    这个算法主要用于解决带权重的有向图或无向图中,从一个指定的起点到其他所有顶点的最短路径问题。它通过逐步扩展最短路径树来逐步逼近最终的最短路径。下面将详细介绍Dijkstra算法的工作原理、步骤以及其在实际应用...

    交通道路网中任意两点之间最短路径的快速算法.docx

    ### 交通道路网中任意两点之间最短路径的快速算法 #### 概述 在现代城市规划、物流配送以及旅行导航等领域中,寻找交通道路网中任意两点间的最短路径是一个非常重要的问题。传统的最短路径算法,如Dijkstra算法虽然...

    迪杰斯特拉算法求最短路径

    这个算法由荷兰计算机科学家艾兹格·迪杰斯特拉在1956年提出,它的核心思想是通过逐步扩展最短路径树来逼近目标节点的最短路径。 在Java编程中实现迪杰斯特拉算法,首先我们需要准备一些基本数据结构。这通常包括:...

    电子科技大学数学实验大作业-解椭球面上两点之间的最短距离

    ### 电子科技大学数学实验大作业-解椭球面上两点之间的最短距离 #### 知识点解析 **一、椭球面与地球模型** - **椭球面的概念**:椭球面是一种三维空间中的几何体,它在三个轴向上的尺度各不相同,通常用方程 \( ...

    VC拟合与逼近算法

    假设我们有一组数据点 (x_i, y_i),目标是找到一个函数 f(x) 使得所有数据点到 f(x) 的垂直距离(即误差)的平方和最小。这通常通过求解线性系统或梯度下降等优化方法实现。最小二乘法在工程、物理和统计学中广泛...

    基于MATLAB单双圆弧混合逼近曲线的算法及实现.pdf

    该算法首先使用单圆弧逼近法来逼近曲线,然后在曲线的驻点和曲率极值点处使用双圆弧逼近法,最后使用MATLAB软件对节点进行求解。 三、算法的优点 基于MATLAB的混合逼近算法具有以下优点: * 能够保证整个逼近曲线...

    关于最短路径的SPFA快速算法_段凡丁1

    在Dijkstra算法中,每次都是从未被处理的顶点集合中选择距离源点最近的顶点,并更新其相邻顶点的距离。而SPFA算法则使用了一个先进先出(FIFO)的队列来存储待优化的顶点。这些顶点是当前可能到达的最短路径的候选...

    函数逼近算法(包含十二种不同算法)

    它寻找一条直线(或更高维度的超平面),使得所有离散点到该直线的垂直距离之和最小。这种方法简单且有效,但可能对异常值敏感。 4. LZxec算法:LZxec可能是一种自适应的编码技术,用于数据压缩。在函数逼近的上下...

    基于粒子群算法的最短路径设计和实现

    在本文中,我们将深入探讨如何使用粒子群优化算法(Particle Swarm Optimization, PSO)来解决最短路径问题,并且在MATLAB环境中实现这一算法。粒子群算法是一种模拟自然界中鸟群或鱼群群体行为的优化技术,它通过...

    最短路径Dijkstra算法.docx

    这个算法的核心思想是贪心策略,即每次扩展最短路径,逐步逼近目标节点的最短路径。 算法步骤如下: 1. 初始化:创建一个距离数组`distances`,用于存储从起始节点到每个节点的当前最短距离;创建一个已访问数组`...

    floyd算法及最短路径问题

    3. 算法结束:经过n次(n为顶点数量)更新后,距离矩阵中dis[i,j]的值就是从顶点i到顶点j的最短路径长度。 算法的时间复杂度是O(n^3),其中n是顶点的数量。由于算法的时间复杂度较高,对于大规模的图,它可能不是...

    Dijkstra最短路径算法

    Dijkstra最短路径算法是图论中的一个经典算法,由荷兰计算机科学家艾兹格·迪科斯彻在1956年提出,主要用于寻找图中从起点到终点的最短路径。这个算法适用于有权值的非负边,即每条边的权重都是非负的。在VC6.0环境...

Global site tag (gtag.js) - Google Analytics