zoukankan      html  css  js  c++  java
  • 关于 求 曲面 短程线

    我在 《二元函数 的 极值点 怎么求 ?》   https://www.cnblogs.com/KSongKing/p/13022641.html   里  提出了 曲面短程线方程组  和 曲面短程线微元方程组  。

     

    曲面短程线方程组 是 n 元方程组,   数值方法 求解 的 计算量(时间复杂度) 太大,  简单的说,  是 指数级 的 那种  。

     

    当然,  未来 也许 有 新的 、更快的 算法出现,  或者 计算机 的 计算速度 也 呈 指数级 提高, 呵呵 。

     

    不管怎么说,  总之,   n 元方程组 的 计算量 太大 的 话,   可以有一个 变通 的 方法 。  这个 方法 就是 使用  曲面短程线微元方程组  。

     

    通过  曲面短程线微元方程组,    可以 从  P1 、P2 点 出发,  求 得 P3,  又根据  P2 、P3, 求得 P4,  又根据 P3 、P4, 求得 P5 ……  一直到  Pn,

    将 P1, P2, P3 …… Pn  连起来 得到 的 折线  P1Pn  就是  P1 到 Pn 之间 节点数 为 n - 2 的 最短折线,   这里 的 节点数 没有 算 P1 、Pn 两个端点 。

    当  n -> 无穷,  当然,   P1Pn   就 变成了 光滑曲线,  就是 短程线 。

     

    当 给定 曲面 上 的 两点,  A 、B,  求 A B 间 的 短程线 时,  可以从 A 出发,  用 曲面短程线微元方程组  按  上述 的 步骤 作出 n 个点,  连成 一条  近似 的 短程线  。

    但问题是,   这条线 不一定 会 通过 B,   又或者,  从 A 出发,  可以 选择 任意 一个 方向出发,  就是说,  A 之后的 第一个点  P1 决定了 整条线 未来 的 走向  。

     

    所以,  实际的 做法 是,    可以 任意 选择 若干个 方向 从 A 出发,  就是说,  可以在 A 附近 选择 任意 若干个 点 作为  P1 ,

    这样 可以画出  若干条 近似短程线,   看 哪几条 在 B 点 附近 通过,    选择 离 B 点 最近 的 那一条,   以 这一条 为 参考, 可以估计 出 从 A 点 向 哪个方向 出发(P1 点 选在 哪里)  会 让 画出 的 近似短程线  在 B 点 附近 通过, 且 和 B 点 越近,   以此评估,   再 画一轮,

    第二轮 也是 会 画 若干条 近似短程线,  从中 又 选择 出 和 B 最近 的 那条,  重复上述过程,  可以再画 第三轮 、第四轮  ……

    这样可以让 近似短程线 逼近 B 点,     近似短程线 在 B 点 附近通过,  和 B 的 距离 越近,  则 越接近 理论解,   也就是 精度越高 。

    一般,   不用几轮,    就可以得到 足够精度 的 近似短程线 了 。

     

    这个 方法 有 模拟 的 性质,   也是 一种 数值方法  。       有些时候,   这个方法 也可以 反过来 解 n 元方程组  。

     

    这个方法 可以 称为   “微元曲线生长碰巧逼近法”,   又名 “微元曲线生长碰撞逼近法”   。    模拟绘制  最速降线 、球面短程线 等 都可以用 这个 方法 。  这个 方法  也是 一种 数值方法  。

     

    这个方法 还可以 称为  “高阶方程 的 模拟碰撞 解法”,   又可称为  “n 元方程组 的 模拟碰撞 解法”    。

     

    还可以 称为  “数值方法 之 模拟碰撞法” ,   又名  “数值方法 之 模拟碰巧法” ,   又名 “数值方法 之 碰撞巧解”,   又名  “数值方法 之 碰巧巧解”   。

     

    碰撞法 代表 的 思想 是 站在 高维度 的 视角 下 用 直观 看待 低维度 的 复杂问题 。

     

  • 相关阅读:
    VS Code中编写C
    Latex
    JAVA学习-----容器和数据结构
    Markdown2最最基本操作说明(未完待续)
    [lua] table.sort(_table, comp)使用要点
    [coco2d]pageView:addPage时,page无法对齐
    [cocos2d]修改富文本文本和高度
    [cocos2d]格式化获取当前layer的控件名
    [c++]牛客刷题记录2.18
    [c++]STL学习
  • 原文地址:https://www.cnblogs.com/KSongKing/p/13181897.html
Copyright © 2011-2022 走看看