首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python偏导数

Python偏导数
EN

Stack Overflow用户
提问于 2018-09-29 18:38:38
回答 2查看 3.7K关注 0票数 0

我试着把数字放在一个有偏导数的函数中,但我找不到正确的方法,我已经搜索了所有的互联网,我总是得到一个error.Here是代码:

代码语言:javascript
复制
from sympy import symbols,diff
import sympy as sp
import numpy as np
from scipy.misc import derivative
a, b, c, d, e, g, h, x= symbols('a b c d e g h x', real=True)
da=0.1
db=0.2
dc=0.05
dd=0
de=0
dg=0
dh=0
f = 4*a*b+a*sp.sin(c)+a**3+c**8*b
x = sp.sqrt(pow(diff(f, a)*da, 2)+pow(diff(f, b)*db, 2)+pow(diff(f, c)*dc, 2))
def F(a, b, c):
return x

print(derivative(F(2 ,3 ,5)))

我得到以下错误: derivative()缺少1个必需的位置参数:'x0‘

我是python的新手,所以这可能是一个愚蠢的问题,但如果有人能帮助我,我会很感激。

EN

回答 2

Stack Overflow用户

发布于 2018-09-29 22:53:52

您可以通过变量abc(2,3,5)处找到函数foo的三个偏导数:

代码语言:javascript
复制
f = 4*a*b+a*sp.sin(c)+a**3+c**8*b
foo = sp.sqrt(pow(diff(f, a)*da, 2)+pow(diff(f, b)*db, 2)+pow(diff(f, c)*dc, 2))

foo_da = diff(foo, a)
foo_db = diff(foo, b)
foo_dc = diff(foo, c)

print(foo_da," = ", float(foo_da.subs({a:2, b:3, c:5})))
print(foo_db," = ", float(foo_db.subs({a:2, b:3, c:5})))
print(foo_dc," = ", float(foo_dc.subs({a:2, b:3, c:5})))
票数 1
EN

Stack Overflow用户

发布于 2020-01-26 09:22:10

我已经使用了python包'sympy‘来执行偏导数。要计算偏导数的点是val。参数“val”可以作为列表或元组传递。

代码语言:javascript
复制
# Sympy implementation to return the derivative of a function in x,y
# Enter ginput as a string expression in x and y and val as 1x2 array

def partial_derivative_x_y(ginput,der_var,val):
    import sympy as sp
    x,y = sp.symbols('x y')
    function = lambda x,y: ginput
    derivative_x = sp.lambdify((x,y),sp.diff(function(x,y),x))
    derivative_y = sp.lambdify((x,y),sp.diff(function(x,y),y))
    if der_var == 'x' :
        return derivative_x(val[0],val[1])
    if der_var == 'y' :
        return derivative_y(val[0],val[1])

 input1 = 'x*y**2 + 5*log(x*y +x**7) + 99'
 partial_derivative_x_y(input1,'y',(3,1))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52567518

复制
相关文章

相似问题

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