2 votos

Derivada parcial con sympy Python

He utilizado el sympy de Python para tomar la derivada parcial de la siguiente función con respecto a $\rho$ :

$$f = \frac{V\lambda(k\rho)^k}{2k!k^2\rho(1-\rho)^2 \left [\sum_{n=0}^{k-1}\frac{(k\rho)^n}{n!}+\frac{(k\rho)^k}{k!(1-\rho)} \right ]}$$

import sympy as sy
sy.init_printing()
from sympy import Sum, collect, factorial
V, lambdaa,rho = sy.symbols('V lambda rho', real=True)
n, k = sy.symbols('n k', integer= True)
f = (V*lambdaa*(k*rho)**k / (2*sy.factorial(k)*k**2*rho*(1-rho)**2
            *(sy.Sum((k*rho)**n/sy.factorial(n), (n,0,k-1)) 
              + (k*rho)**k/(sy.factorial(k)*(1-rho)))))
(collect(collect(sy.simplify(sy.diff(f, rho)), Sum(k**n*rho**n/factorial(n),
        (n, 0, k - 1)), lambda i: collect(i, k)), 
         Sum(k**n*rho**n*n/rho/factorial(n), (n, 0, k - 1)), 
         lambda i: collect(i, rho**k)))

Se rinde:

$$\frac{\partial f}{\partial \rho}=\frac{V \lambda \left(k \rho\right)^{k - 2}}{2 \left(\rho - 1\right)^{2} \left(- k^{k} \rho^{k} + \left(\rho k! - k!\right) \sum_{n=0}^{k - 1} \frac{k^{n} \rho^{n}}{n!}\right)^{2}} \left(2 k^{k} \rho^{k + 1} - \left(k \rho\right)^{k} + \left(- \rho^{3} k! + 2 \rho^{2} k! - \rho k!\right) \sum_{n=0}^{k - 1} \frac{k^{n} n \rho^{n}}{\rho n!} + \left(k \left(\rho^{2} k! - 2 \rho k! + k!\right) - 3 \rho^{2} k! + 4 \rho k! - k!\right) \sum_{n=0}^{k - 1} \frac{k^{n} \rho^{n}}{n!}\right)$$

Basándome en la derivada parcial anterior, quiero saber si $\frac{\partial f}{\partial \rho}\geq0$ con estas condiciones: $0<\rho<1$ , $V\geq0$ , $\lambda \geq 0$ y $k\geq1$ . $k$ es entera y todas las demás variables son continuas. Veo que la primera fracción es positiva, sin embargo, el resto no está muy claro.

1voto

Claude Leibovici Puntos 54392

Desde el punto de vista de la codificación, siempre es más sencillo utilizar para casos como éste la diferenciación logarítmica. Reescribe tu expresión $$f = \frac{V\lambda(k\rho)^k}{2k!k^2\rho(1-\rho)^2 \left [\sum_{n=0}^{k-1}\frac{(k\rho)^n}{n!}+\frac{(k\rho)^k}{k!(1-\rho)} \right ]}$$ como $$f=\frac {V\lambda k^k}{2k!k^2}\frac{\rho^{k-1} }{(1-\rho)^2 A}\qquad \text{where} \qquad A=\sum_{n=0}^{k-1}\frac{(k\rho)^n}{n!}+\frac{(k\rho)^k}{k!(1-\rho)} $$ Tomar logaritmos $$\log(f)=\log\left(\frac {V\lambda k^k}{2k!k^2} \right)+(k-1)\log(\rho)-2\log(1-\rho)-\log(A)$$ Diferenciar ambos lados $$\frac {f'}f=\frac{k-1}\rho+\frac 2{1-\rho}-\frac{A'}A$$

$$A'=\sum_{n=0}^{k-1}\frac{(k\rho)^n}{(n-1)!\rho}+\frac{(k \rho )^k (k+\rho-k\rho )}{(\rho -1)^2 \rho k!}$$

Para terminar, escribe $$f'=f \times \left(\frac {f'}f\right)$$ y no simplificar en absoluto .

Esto le dará un código mucho más eficiente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X