【问题标题】:Integration of sin x dx problem in python programming implementationpython编程实现中sin x dx问题的整合
【发布时间】:2021-04-27 22:48:44
【问题描述】:

我想在 Python 中实现这种集成:

到目前为止,我做了下面的代码,但它没有意义。我做错了什么?

import sympy as sm
x=sm.Symbol('x')
x=sm.integrate(math.sin(x)**2, 2*x)

【问题讨论】:

  • " 但它没有意义" -> 你能更具体地说明它给你的东西以及为什么它没有意义吗?
  • "can't convert expression to float" 其抛出的错误和代码与原始方程不匹配,并且没有定义限制
  • 您是否知道您显示的等式具有sin(x ** 2),但在您使用的代码中sin(x) ** 2
  • 好吧,我改了,但还是报同样的错误
  • 请在问题中包含错误(您可以编辑它);它们会比在 cmets 中更容易阅读。我们希望看到发布者试图理解错误的证据。

标签: python math integration sympy


【解决方案1】:

我想你正在寻找这个:

import sympy as sm

x=sm.Symbol('x')
x=sm.integrate(sm.sin(x**2), x)

print(x)

您需要使用 sympy lib 中的 sin 函数,而不是 math lib。

【讨论】:

  • 32⎯⎯√?⎯⎯√?(2√??√)Γ(34)8Γ(74) ---------我试过你的代码它给出了这个
【解决方案2】:

一个问题是您没有使用 sympy 中的三角函数:

from sympy import sin
from sympy.abc import x

integrate(sm.sin(x**2), x)

这将返回一个涉及 Gamma 函数的复杂表达式,因为 sin(x^2) 没有简单的不定积分。

但是,您可以直接计算您所显示的定性积分,只需使用边界作为参数(并使用sympy.oo 表示无穷大):

from sympy import sin, oo
from sympy.abc import x

integrate(sin(x**2), (x, 0, oo))

这会正确返回:

(来源:来自sympy documentation

【讨论】:

  • 它什么也不返回
  • 是的,它确实没有返回任何内容,因为函数 sin(x^2) 没有“不定积分”。让我一分钟来编辑我的答案
  • @SUM 你运行的是最新版本的 sympy (1.7.1) 吗?另外,尽量不要将x 用作符号和表达式的变量。
  • @SUM 我直接在sympy文档在线python控制台试了这段代码
【解决方案3】:

在开始计算之前了解answer 是什么很有帮助:

integral_0^∞ sin(x^2) dx = sqrt(π/2)/2≈0.626657

【讨论】:

  • 我想通过方程传递 10 个不同的 x 值,直接答案将无济于事
【解决方案4】:

参考其他答案,您不需要使用trigintegrate,但如果是定积分,则在调用integrate 时确实需要提供积分限制:

In [31]: from sympy import integrate, sin, oo, Symbol

In [32]: x = Symbol('x')

In [33]: integrate(sin(x**2), (x, 0, oo))
Out[33]: 
√2⋅√π
─────
  4  

In [34]: _.n()
Out[34]: 0.626657068657750

【讨论】:

  • 抛出了无效的限制
  • 恐怕我不明白你的评论是什么意思。
猜你喜欢
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多