Частная производная Python - PullRequest
       35

Частная производная Python

0 голосов
/ 29 сентября 2018

Я пытаюсь поместить числа в функцию, которая имеет частные производные, но я не могу найти правильный способ сделать это, я обыскал весь интернет и всегда получаю сообщение об ошибке. Вот код:

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)))

Я получаю следующую ошибку: производная () отсутствует 1 обязательный позиционный аргумент: 'x0'

Я новичок в Python, поэтому, возможно, это глупый вопрос, но я был бы благодарен, если бы кто-то помог мне.

1 Ответ

0 голосов
/ 29 сентября 2018

Вы можете найти три частных производных функции foo по переменным a, b и c в точке (2,3,5):

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})))
...