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

  • 相关阅读:
    eval()
    promise
    console.log()和console.dir()、console.table()的区别
    SSM框架搭建+easyui增删改查
    虚成员
    关键字 explicit
    复制控制
    变量、静态变量
    关键字 extern
    关键字 static
  • 原文地址:https://www.cnblogs.com/yijuncheng/p/9791443.html
Copyright © 2011-2022 走看看