首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python实现常量函数积分

用Python实现常量函数积分
EN

Stack Overflow用户
提问于 2021-03-11 17:54:41
回答 1查看 63关注 0票数 0

我正在用python做数值积分,它对常量值的数据不起作用,例如没有斜率。我知道解析积分是显而易见的,但我仍然想知道为什么它在python中不起作用。

代码:

代码语言:javascript
复制
# Integral
import matplotlib.pyplot as plt
from scipy import integrate
import numpy as np

time = np.linspace(0, 10, num=20)
velocity = time/time

y_integral_numerical = integrate.cumtrapz(velocity, time, initial=0)
y_integral_analytical = time
print(y_integral_numerical)
plt.plot(time, velocity, 'ro',label="Velocity")
plt.plot(time, y_integral_numerical, 'g', label="Numerical Integral-Displacement")
#plt.plot(time, y_integral_analytical, 'b-', label="Analytical Integral-Displacement")

#plt.legend(loc="upper left")
plt.grid(True)
plt.legend()
plt.show()
EN

回答 1

Stack Overflow用户

发布于 2021-03-11 18:07:41

答案很简单:time包含0,所以velocity=time/time包含0/0作为第一个条目,它是nan,然后integrate.cumtrapz不能计算积分。

您还应该看到类似以下内容的警告:

代码语言:javascript
复制
/usr/bin/ipython3:1: RuntimeWarning: invalid value encountered in true_divide
  #! /bin/sh

警告你0/0的存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66580153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档