【问题标题】:How to illustrate the Simpson/Trapezoidal rules in python?如何在 python 中说明辛普森/梯形规则?
【发布时间】:2015-05-29 12:51:19
【问题描述】:

我想绘制一个图来说明简单函数 (y=x^2) 的辛普森/梯形积分公式。 scipy 的 simps 和 trapz 函数有助于计算面积,但我也想在原始曲线上绘制梯形/抛物线。我想知道是否有任何现有的例程,如果没有,获得一些关于如何制作这些情节的想法会有所帮助。

   import numpy as np
   from scipy.integrate import simps, trapz

   x=np.arange(9)
   y=x**2

   area=simps(y,x)
   print area

   area=trapz(y,x)
   print area

   plot(y,x)

【问题讨论】:

  • 没有标准的例程来绘制你想要的东西。尝试自己制作情节,如果遇到麻烦,也许这里有人会提供帮助。事实上,你只是说“我有这个想法,写代码让我去做。”

标签: python scipy


【解决方案1】:

我建议使用 matplotlib,具有 fill_between 之类的功能,

import numpy as np
from scipy.integrate import simps, trapz
import matplotlib.pyplot as plt

def f(x):
    return x**2

fig, ax = plt.subplots(1,1)

#Continous curve
x=np.arange(0,9,0.01)
y=f(x)
ax.plot(y,x, 'k-')

#Trapizium
xstep = np.arange(0,10,3)
area=trapz(y,x)
print area
ax.fill_between(f(xstep), 0, xstep)

#Simpsons
area=simps(y,x)
print area
#etc etc

plt.show()

我只做了陷阱近似,你需要定义一个函数来绘制辛普森规则近似以填充之间

【讨论】:

    猜你喜欢
    • 2014-12-17
    • 2016-05-05
    • 2016-02-16
    • 1970-01-01
    • 2020-01-19
    • 2015-12-15
    • 2020-02-26
    • 2021-04-19
    • 2014-01-06
    相关资源
    最近更新 更多