📜  如何使用Python找到定积分?

📅  最后修改于: 2022-05-13 01:55:37.411000             🧑  作者: Mango

如何使用Python找到定积分?

定积分是不定积分之后的扩展,定积分有极限[a,b]。它给出了给定界限之间的曲线面积。

\int_{a}^b F(x)dx

它表示以 a 和 b 为界的曲线 F(x) 的面积,其中 a 是下限,b 是上限。

在本文中,我们将讨论如何在Python求解定积分,并且还将使用 matplotlib 可视化它们之间的区域。我们还将使用 NumPy 模块来定义我们正在集成的变量的范围。让我们从安装模块开始。

需要的模块:

  • matplotlib :我们将使用它来可视化由定积分形成的图形下的区域。
  • numpy 定义定积分范围的辅助库。
  • sympy:用于轻松计算积分数值解的库。

方法

用于计算曲线下面积



  • 导入模块
  • 声明函数
  • 整合。

句法 :  

用于绘图 

  • 导入模块
  • 定义一个函数
  • 定义一个变量
  • 绘制曲线
  • 使用某种条件填充它下面的颜色。
  • 显示图

下面给出的是相同的实现。

曲线与标准轴之间的面积

示例 1

Python
import matplotlib.pyplot as plt
import numpy as np
import sympy as sy
  
  
def f(x):
    return x**2
  
x = sy.Symbol("x")
print(sy.integrate(f(x), (x, 0, 2)))


Python3
import matplotlib.pyplot as plt
import numpy as np
  
  
def f(x):
    return x**2
  
x = np.linspace(0, 2, 1000)
plt.plot(x, f(x))
plt.axhline(color="black")
plt.fill_between(x, f(x), where=[(x > 0) and (x < 2) for x in x])
plt.show()


Python3
import matplotlib.pyplot as plt
import numpy as np
import sympy as sy
  
  
def f(x):
    return x**2
  
  
def g(x):
    return x**(1/2)
  
  
x = sy.Symbol("x")
print(sy.integrate(f(x)-g(x), (x, 0, 2)))


Python3
import matplotlib.pyplot as plt
import numpy as np
  
  
def f(x):
    return x**2
  
  
def g(x):
    return x**(1/2)
  
  
x = np.linspace(0, 2, 1000)
plt.plot(x, f(x))
plt.plot(x, g(x))
plt.fill_between(x, f(x), g(x), where=[(x > 0) and (x < 2) for x in x])
plt.show()


输出:

8/3

示例 2:

蟒蛇3



import matplotlib.pyplot as plt
import numpy as np
  
  
def f(x):
    return x**2
  
x = np.linspace(0, 2, 1000)
plt.plot(x, f(x))
plt.axhline(color="black")
plt.fill_between(x, f(x), where=[(x > 0) and (x < 2) for x in x])
plt.show()

输出:

两条曲线之间的面积

示例 1:

蟒蛇3

import matplotlib.pyplot as plt
import numpy as np
import sympy as sy
  
  
def f(x):
    return x**2
  
  
def g(x):
    return x**(1/2)
  
  
x = sy.Symbol("x")
print(sy.integrate(f(x)-g(x), (x, 0, 2)))

输出:

0.781048583502540

示例 2:

蟒蛇3

import matplotlib.pyplot as plt
import numpy as np
  
  
def f(x):
    return x**2
  
  
def g(x):
    return x**(1/2)
  
  
x = np.linspace(0, 2, 1000)
plt.plot(x, f(x))
plt.plot(x, g(x))
plt.fill_between(x, f(x), g(x), where=[(x > 0) and (x < 2) for x in x])
plt.show()

输出: