Math 如何计算数学函数曲线的长度?

Math 如何计算数学函数曲线的长度?,math,geometry,2d,curve,Math,Geometry,2d,Curve,我得到了曲线C,我想计算它的两个点A,B之间的曲线长度: f(x) = x² + 2x C( x,f( x)) A(-2.0,f(-2.0)) B( 0.5,f( 0.5)) 所以x= 如何计算点之间的曲线长度A、B? 当然,我想知道如何在图纸上计算:) 谢谢;) 下面是Python 3代码,它将近似于函数图的弧长。它是为连续函数而设计的,尽管没有任何计算机程序能够进行获得真实结果所需的无限多的计算 """Compute the arc length of the curve def

我得到了曲线
C
,我想计算它的两个点
A,B
之间的曲线长度:

f(x) = x² + 2x
C(   x,f(   x))
A(-2.0,f(-2.0))
B( 0.5,f( 0.5))
所以
x=

如何计算点之间的曲线长度
A、B
? 当然,我想知道如何在图纸上计算:)


谢谢;)

下面是Python 3代码,它将近似于函数图的弧长。它是为连续函数而设计的,尽管没有任何计算机程序能够进行获得真实结果所需的无限多的计算

"""Compute the arc length of the curve defined by y = x**2 + 2*x for
-2 <= x <= 0.5 without using calculus.
"""
from math import hypot


def arclength(f, a, b, tol=1e-6):
    """Compute the arc length of function f(x) for a <= x <= b. Stop
    when two consecutive approximations are closer than the value of
    tol.
    """
    nsteps = 1  # number of steps to compute
    oldlength = 1.0e20
    length = 1.0e10
    while abs(oldlength - length) >= tol:
        nsteps *= 2
        fx1 = f(a)
        xdel = (b - a) / nsteps  # space between x-values
        oldlength = length
        length = 0
        for i in range(1, nsteps + 1):
            fx0 = fx1  # previous function value
            fx1 = f(a + i * (b - a) / nsteps)  # new function value
            length += hypot(xdel, fx1 - fx0)  # length of small line segment
    return length

def f(x):
    return x**2 + 2*x

print(arclength(f, -2.0, 0.5, 1e-10))
计算由y=x**2+2*x定义的曲线的弧长
-2你可以简单地计算沿着曲线的许多
n
点,并将它们之间的距离加起来,用许多小线段逼近你的曲线。实际上,当点的数量变为无穷大时,曲线积分就是这样做的。无需任何更高的数学,我们可以将
n
设置为某个足够大的值,并将其添加到中de>O(n)for循环。例如在C++中,如下所示:

#包括
double f(double x){return(x*x)+x+x;}//您的函数
双长度(双x0,双x1,int n)//f(x)x的长度=
{
INTE;
双x,dx,y,dy,l;
y=f(x0);dx=(x1-x0)/double(n-1);l=0.0;//开始y和长度
对于(e=1,x=x0+dx;e;x+=dx)//在整个x范围内循环
{
如果(x>=x1){x=x1;e=0;}//end?
dy=y;y=f(x);dy=y-dy;//y=f(x)并且dy是y-oldy
l+=sqrt((dx*dx)+(dy*dy));//添加行长度
}
返回l;//返回长度
}
这样使用:


请不要让你的问题显示出来。你应该至少包括你遇到问题的代码的大纲(但最好是a),然后我们可以尝试帮助解决具体问题。你也应该阅读。我会花点时间讨论一下(我才12年级^)谢谢,它看起来真的很有趣;pDo你想要一个封闭形式的精确答案,这需要微积分,还是一个计算的近似值就足够了?两者的混合(使用导数而不是积分)合适吗?如果是后者,精确到什么程度?有人问我这个(他的帖子被删除了idk为什么)非常好!!似乎很有效:我投票结束这个问题,因为它是关于编程或软件开发的,而不是关于主题。