zoukankan      html  css  js  c++  java
  • 计算曲线与坐标轴的面积

     根据坐标点,计算曲线与坐标轴的面积。

    import numpy as np
    import matplotlib.pyplot as plt
    x = np.arange(0,1,0.001)
    y = np.sqrt(1-x**2)
    plt.close('all')
    plt.plot(x, y)
    plt.show()

     

    1. trapz函数

    利用梯度规则(Trapezoidal rule)求解积分。

    from numpy import trapz
    trapz(y, x, dx=0.001)

    2. simps函数

    利用辛普森积分法(Simpson's rule),以二次曲线逼近的方式取代矩形或梯形积分公式,以求得定积分的数值近似解。

    from scipy.integrate import simps
    simps(y, x, dx=0.001)

    3. 利用多边形求解

    def PolyArea(x,y):
        return 0.5*np.abs(np.dot(x,np.roll(y,1))-np.dot(y,np.roll(x,1)))
    PolyArea(np.append(x, 0), np.append(y, 0))

     利用Shoelace formula,可以理解为是把每个顶点向x轴做垂线,每个边和坐标轴构成的梯形面积矢量和,结果就是多边形面积。也可理解为用最大矩形的面积减去各个三角形面积得到中间的多边形面积。

    参考:

    1. https://stackoverflow.com/questions/13320262/calculating-the-area-under-a-curve-given-a-set-of-coordinates-without-knowing-t

    2. https://en.wikipedia.org/wiki/Shoelace_formula

    3. https://stackoverflow.com/questions/24467972/calculate-area-of-polygon-given-x-y-coordinates

  • 相关阅读:
    margin负值的应用
    css书写顺序和常用命名推荐
    CSS Hack代码与浏览兼容总结
    高效css选择符
    高级css选择器
    css透明背景兼容方案
    height设置100%不起作用
    deepin安装Motrix,cocomusic
    linux关闭ipv6
    关于text-align无法居中的问题
  • 原文地址:https://www.cnblogs.com/yijuncheng/p/9791443.html
Copyright © 2011-2022 走看看