本文要点在于:任意曲线在一个很小的局部都可以看作直线。

def curveLength(xs, func):

'''xs:x轴的采样点,越密越准确

func:曲线方程对应的函数'''

#函数曲线上的采样点坐标(x,y)

vs = list(zip(xs, map(func, xs)))

#返回所有折线段长度(欧几里得距离)之和

return sum(((v[0]-vs[i+1][0])**2+(v[1]-vs[i+1][1])**2)**0.5 for i,v in enumerate(vs[:-1]))

#x轴采样点

xs = list(map(lambda x:x/100, range(200)))

#曲线方程对应的函数,在x的区间上应单调

funcs = {'horizontalLine':lambda x: 3,

'diagonalLine':lambda x: x*2,

'cubicCurve':lambda x: x**3}

#曲线近似长度

for k, v in funcs.items():

print(k.ljust(15)+':', curveLength(xs, v))

代码在所用测试数据上的运行结果为:

horizontalLine : 1.99

diagonalLine   : 4.449775275224593

cubicCurve     : 8.510498199174192

Python计算任意单调曲线在给定区间上的近似长度相关推荐

  1. python计算任意多边形面积

    看了一些方法网上的资料,也自己倒腾了一些想法. 然后看到这个大神的博客(<计算任意多边形的面积>),我就服气了. 我把代码转换为python: # 计算任意多边形的面积,顶点按照顺时针或者 ...

  2. Python 计算任意两向量之间的夹角

    如图所示,我们要计算任意两个向量之间的夹角. (图中的坐标数字是估计值,随手给定) python代码如下 import math AB = [1,-3,5,-1] CD = [4,1,4.5,4.5] ...

  3. python计算多个模型在不同数据集上的预测概率、获取每个数据集上的最优模型、多个最优模型的ROC曲线进行对比分析

    pytyon计算多个模型在不同数据集上的预测概率.获取每个数据集上的最佳模型.多个最优模型的ROC曲线进行对比分析 目录

  4. python 画任意函数曲线_使用Python画数学函数曲线

    import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.figure(1) # 创建图表1 plt.fig ...

  5. Python计算任意数据的分布函数(累积概率函数CDF)与概率密度(PDF),并绘图

    分布函数求导就是概率密度,在任意的数据中由于数据分布不确定,所以严格来讲这些数据是没有分布函数和概率密度函数的,但是我们就是想得出那种结果,画出那种曲线,这里就需要借助scipy.stats.relf ...

  6. python中坐标系的方向_使用python计算径向角度,顺时针/逆时针方向,给定像素坐标(反之亦然)...

    对于我不会涉及的上下文,我需要两个基本上彼此互逆的函数. angle_to()应该返回clockhand必须转向从0°行进到连接p1到p2的线的度数(即p1是旋转中心),并且p1和p2都是像素坐标. ...

  7. 两个向量之间的夹角公式_Python 计算任意两向量之间的夹角方法

    如图所示,我们要计算任意两个向量之间的夹角. (图中的坐标数字是估计值,随手给定) python代码如下 import math AB = [1,-3,5,-1] CD = [4,1,4.5,4.5] ...

  8. python计算时间差代码_Python3显示当前时间、计算时间差及时间加减法示例代码...

    Python3显示当前时间.计算时间差及时间加减法示例代码 摘要 在使用Python写程序时,经常需要输出系统的当前时间以及计算两个时间之间的差值,或者将当前时间加减一定时间(天数.小时.分钟.秒)来 ...

  9. python计算图形面积的方法_python计算不规则图形面积算法

    https://www.xin3721.com/eschool/pythonxin3721/ 介绍:大三上做一个医学影像识别的项目,医生在原图上用红笔标记病灶点,通过记录红色的坐标位置可以得到病灶点的 ...

最新文章

  1. 程序员必备技能:如何画好架构图?
  2. Metasploit resource命令技巧
  3. Qt Creator在桌面上预览
  4. Java FileInputStream finalize()方法与示例
  5. 新加入一个团队,我们应该怎么做?
  6. cisco 三层交换机作DHCP服务器的配置
  7. Gitlab+jenkins持续集成+自动化部署(三)
  8. 笔者认为,中国的互联网行业需要真正的CEO
  9. C语言程序设计第四次作业
  10. HTML 5 会为 Flash 和 Silverlight 送终吗?
  11. 阿里云云计算 19 块存储的使用
  12. 线性代数知识点总结,基础概念和计算整理(手写版)
  13. Xilinx下载安装与在win10闪退问题解决方法
  14. linux中su 与su-的区别
  15. 利用Python进行数据分析的学习笔记——chap9
  16. day12.3 C语言初阶——求10 个整数中最大值
  17. 基于SeedUbuntu16.04的缓冲区溢出实验
  18. ​大数据和云计算技术周报(第37期)
  19. 信息收集之 端口扫描
  20. 让办公管理如影随形的移动OA系统

热门文章

  1. 用ikvm 来把java类库转换成_net类库,IKVM.NET
  2. pandas手册_Github标星6000+ 这可能是最全的机器学习工具手册
  3. group by后可以join吗_去韩国留学毕业后可以留在韩国吗
  4. Java多个注解合并_Java注解合并,注解继承
  5. mysql都有哪些数据库日志_MySQL数据库之MySQL都有哪些日志?分别都代表什么
  6. java归并排序代码_Java归并排序算法
  7. MySQL修改my.cnf配置不生效的解决方法
  8. Intelli IDEA 快捷键操作,咱来点不一样的
  9. 极客学院视频源码资料
  10. Java并发编程基础-ReentrantLock的机制