我一直在尝试这几个小时.我想我不明白一个基本概念,这就是为什么到目前为止我无法回答这个问题.
我正在尝试的是实现一个简单的数学函数,如下所示:
f(x) = x**2 + 1
Run Code Online (Sandbox Code Playgroud)
之后我想得到那个功能.
我已经定义了符号和函数:
x = sympy.Symbol('x')
f = sympy.Function('f')(x)
Run Code Online (Sandbox Code Playgroud)
现在我正在努力为这个函数定义方程f(x).有点像f.exp("x**2 + 1")不起作用.
我也想知道在最终定义之后我怎么能打印出这个函数的控制台.
asm*_*rer 29
sympy.Function用于未定义的函数.就像f = Function('f')那时f(x)在表达式中仍然没有评估.
如果你想要一个实际的功能(比如,如果你做的f(1)是评估x**2 + 1的x=1,你可以使用Python函数
def f(x):
return x**2 + 1
Run Code Online (Sandbox Code Playgroud)
然后f(Symbol('x'))会给出一个象征性的x**2 + 1并且f(1)会给予2.
或者您可以将表达式分配给变量
f = x**2 + 1
Run Code Online (Sandbox Code Playgroud)
并使用它.如果要替换x值,请使用subs,如
f.subs(x, 1)
Run Code Online (Sandbox Code Playgroud)
这是你的解决方案:
>>> import sympy
>>> x = sympy.symbols('x')
>>> f = x**2 + 1
>>> sympy.diff(f, x)
2*x
Run Code Online (Sandbox Code Playgroud)
另一种可能性(isympy命令提示符):
>>> type(x)
<class 'sympy.core.symbol.Symbol'>
>>> f = Lambda(x, x**2)
>>> f
2
x ? x
>>> f(3)
9
Run Code Online (Sandbox Code Playgroud)
计算导数的工作方式如下:
>>> g = Lambda(x, diff(f(x), x))
>>> g
x ? 2x
>>> g(3)
6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15060 次 |
| 最近记录: |