美文网首页
牛顿-辛普森迭代法求曲线参数

牛顿-辛普森迭代法求曲线参数

作者: yumxuanyi | 来源:发表于2023-06-20 11:29 被阅读0次

@版权声明:本文为版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出,
本文链接https://www.jianshu.com/p/074b712cbe6f?v=1687318199599
如有问题, 可邮件咨询。


关键字:牛顿-辛普森、积分、曲线长度、GCPnts_AbscissaPoint、OpenCascade

通过上一篇文章,在已知曲线方程和给定参数区间,我们很容易就能计算曲线的在该区间内的弧长。
但是,有时候,我们要求曲线上距离给定参数U0,弧长为Abscissa的另为一点的参数Ui。这时该如何计算呢?
已知条件1. 曲线的参数方程
已知条件2 ,起点参数U0
已知条件3 ,曲线上距离参数U0位置点 的弧长Abscissa

任意曲线弧长的微分方程为\mathrm{d}s=\sqrt{\mathrm{d}^2x+\mathrm{d}^2y}
在已知曲线参数方程的情况下
\mathrm{d}s=\sqrt{\mathrm{d}^2x+\mathrm{d}^2y}= \sqrt{(\frac{dx}{dθ})^2 + (\frac{dy}{dθ})^2}dθ 其中θ为参数
那么弧长计算如下
L =\int_a^b1ds = \int_a^b\sqrt{(\frac{dx}{dθ})^2 + (\frac{dy}{dθ})^2}dθ
h(θ)=\sqrt{(\frac{dx}{dθ})^2 + (\frac{dy}{dθ})^2}
(注意观察,h(θ)这不就是给定曲线在θ位置切线的模长么,所以h(θ)已知。)

则上式变为: L = \int_a^bh(θ)dθ

这里我们已知积分下限 令其为a,不知道积分上限另其为b= x ,将L移动到右边上式变为
g(x) = \int_a^xh(θ)dθ - L
= F(x) - L

所以我们的目的变为:求一个x使得g(x) = 0成立。

根据牛顿-辛普森迭代法,我们预先猜测一个xi 。然后通过如下公式进行迭代
x_i = x_i - \frac{g(x)}{g'(x)}

因为积分 F(x)=\int_a^xh(θ)dθ 为变上限积分,根据积分第一定理(牛顿-莱布尼兹公式)可知,F(x)为变上限积分原函数,而原函数F(x)的导数就是变上限积分中的积分函数h(θ)。所以 g'(x) =F'(x)= h(θ)

从而:
x_i = x_i - \frac{g(x)}{g'(x)}= x_i - \frac{g(x_i)}{h(x_i)}

通过分析可知,当给定一个x,我们很容易求出g(x) 和 h(x) 然后不断的迭代
知道abs(g(x)) <= 给定的精度。

例如:
已知椭圆的参数方程

\begin{cases} x = acosθ \\ y = bsinθ \end{cases}

h(θ)=\sqrt{(\frac{dx}{dθ})^2 + (\frac{dy}{dθ})^2} = \sqrt{a^2sin^2θ +b^2cos^2θ }
g(θ) = \int_a^θh(θ)dθ - L ( 这一步已知积分上下限先求积分,然后减去L)

当a= 200 b=100时,求椭圆上距离PI/4 长度150的另一个参数点Ui. 精度为0.00000001

  Ux                                               g(x)

1.1096598316594071 -94.177111895505263
1.7052881857520750 22.482481805890046
1.5630964858322587 -5.8951256884998031
1.6003805343695141 1.5610253347664411
1.5905077432833366 -0.41307707114785330
1.5931202720713737 0.10934202567798934
1.592428732811357 -0.028940858958435456
1.5926117704446363 0.0076602755778765186
1.5925633226079750 -0.0020275664376470104
1.5925761460640755 0.00053666886194037033
1.5925727518721695 -0.00014204879113322022
1.5925736502676071 0.000037598344960088070
1.5925734124747946 -0.0000099517601768184250

相关文章

  • 1.3求根之牛顿迭代法

    目录 [TOC] 前言 今天我们讲的是具有收敛速度快,能求重根的解方程之法,牛顿迭代法。 (一)牛顿迭代法的分析 ...

  • 牛顿迭代法

    如何用牛顿迭代法求一个数的平方根(立方根)   对于  对于该方程的求解,可以用牛顿迭代法求近似解   设r是f(...

  • 吹水牛顿迭代法

    因为吹水的能力不佳,所以要先打个草稿,今天的吹水过程大概是:1、牛顿迭代法的演绎过程2、牛顿迭代法求n次方根3、牛...

  • 牛顿迭代法求开方

    如有:f(x) = x2 - 2,求其正根。 曲线与切线的关系:切线是曲线的线性逼近。即,在曲线上某点附近,经过此...

  • 编写用牛顿迭代法求方程根的函数

    问题描述: 编写用牛顿迭代法求方程根的函数。 方程为:a*x^3 + b*x^2 + c*x + d = 0,系数...

  • 每日一问之初识牛顿迭代法(Newton's method)

    什么是牛顿迭代法? 今天在刷 LeetCode 的 sqrt(x) 这道题的时候,看到别人的解法中有使用牛顿迭代法...

  • 牛顿法开根

    牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method)。...

  • 无约束凸优化算法

    本章涉及知识点1、scipy库求解全局最优和局最优2、多元函数的极值求解算法3、牛顿迭代法算法4、牛顿迭代法求解多...

  • C语言 川大复试 笔记

    命令行, 6_11 迭代法平方根e 6_12牛顿法求方程根 6_13二分法求fangchenggen 6_1 最大...

  • 牛顿迭代法求平方根

    牛顿迭代法的作用是使用迭代法来求解函数方程的根,简单的说就是不断地求取切线的过程.对于形如f(x)=0的方程,首先...

网友评论

      本文标题:牛顿-辛普森迭代法求曲线参数

      本文链接:https://www.haomeiwen.com/subject/uyyyydtx.html