4 votos

Encuentre la función cuártica dadas las restricciones

Tengo una función cuática genérica

$$f(x) = a + b x + c x^2 + d x^3 + e x^4$$

y quiero encontrar los valores de $a$ , $b$ , $c$ , $d$ y $e$ tal que la función tiene dos mínimos en $x = 0$ y $x = 1$ y un máximo en un determinado $x = x_e$ (que debe ser calculado). Otras restricciones al problema son que $f(0) = 0$ , $f(1) = 0.5$ y $f(x_e) = 1$ .

Al principio, es fácil predecir que $a = 0$ y $b = 0$ . Pero no sé cómo encontrar los otros valores de $c$ , $d$ y $e$ . Tal vez haciendo uso de los multiplicadores de Lagrange es una manera, pero no puedo averiguar cómo resolver el problema de esta manera.

Estoy tratando de usar IPython con SymPy para resolver y graficar el problema, así que preferiblemente una solución mostrada con estos paquetes sería genial.

2voto

Rodrigo de Azevedo Puntos 608

Desde $f(0) = 0$ concluimos que $\color{blue}{a = 0}$ . Por el hecho de que $f$ tiene dos mínimos locales y un máximo local, concluimos que $\color{blue}{e > 0}$ . Tomando la primera derivada de $f$ obtenemos

$$f ' (x) = b + 2 c x + 3 d x^2 + 4 e x^3$$

Desde $f ' (0) = 0$ concluimos que $\color{blue}{b = 0}$ . Desde $f ' (1) = 0$ y $f (1) = \frac 12$ obtenemos un sistema de $2$ ecuaciones lineales en incógnitas $c$ , $d$ y $e$

$$\begin{array}{rl} 2 c + 3 d + 4 e &= 0\\ c + d + e &= \frac 12\end{array}$$

Introduzcamos el parámetro $t > 0$ . Dejemos que $\color{blue}{e = t}$ . Por lo tanto, $\color{blue}{c = t + \frac 32}$ y $\color{blue}{d = -1 - 2 t}$ . Así,

$$f ' (x) = (2 t + 3) x + 3 (-1 - 2 t) x^2 + 4 t x^3 = x \left( 2 t + 3 - 3 (1 + 2 t) x + 4t x^2 \right)$$

Tras un tedioso trabajo, llegamos a la conclusión de que el máximo se alcanza en

$$x_{\max} := \frac{2 t + 3}{4t}$$

Desde $f (x_{\max}) = 1$ Finalmente obtenemos la ecuación cuártica

$$(2 t + 3)^3 (2 t - 1) - 256 t^3 = 0$$

Utilizando SymPy para resolver la ecuación cuártica anterior:

>>> from sympy import *
>>> t = Symbol('t')
>>> p = (2*t + 3)**3 * (2*t - 1) - 256*t**3
>>> roots = solve(p,t)

Imprime el $4$ raíces en punto flotante :

>>> for r in roots:
        r.evalf()

0.401923788646684 - 0.431895218164327*I
0.401923788646684 + 0.431895218164327*I
11.6136005841302
-0.417448161423609

Imprime el positivo raíz:

>>> roots[2].simplify()
3*sqrt(3)/2 + 3 + sqrt(72 + 42*sqrt(3))/2

Como sólo una raíz es real y positiva, concluimos que el valor del parámetro $t$ es

$$\boxed{ \quad t = \frac{3 \sqrt{3}}{2} + 3 + \frac{1}{2} \sqrt{72 + 42 \sqrt{3}} \approx 11.6136005841302 \quad }$$

Verifiquemos:

>>> from sympy import *
>>> x = Symbol('x')
>>> t = 3*sqrt(3)/2 + 3 + sqrt(72 + 42*sqrt(3))/2
>>> f = (t + 1.5)*x**2 - (1+2*t)*x**3 + t*x**4

Comprobemos las derivadas:

>>> diff(f,x).subs(x,0)
0
>>> diff(f,x).subs(x,1)
0
>>> diff(f,x).subs(x,(2*t+3)/(4*t))
-3*(3*sqrt(3) + 7 + sqrt(72 + 42*sqrt(3)))*(3*sqrt(3) + 9 + sqrt(72 + 42*sqrt(3)))**2/(6*sqrt(3) + 12 + 2*sqrt(72 + 42*sqrt(3)))**2 + 4*(3*sqrt(3)/2 + 3 + sqrt(72 + 42*sqrt(3))/2)*(3*sqrt(3) + 9 + sqrt(72 + 42*sqrt(3)))**3/(6*sqrt(3) + 12 + 2*sqrt(72 + 42*sqrt(3)))**3 + 2*(3*sqrt(3)/2 + 4.5 + sqrt(72 + 42*sqrt(3))/2)*(3*sqrt(3) + 9 + sqrt(72 + 42*sqrt(3)))/(6*sqrt(3) + 12 + 2*sqrt(72 + 42*sqrt(3)))

La tercera es un desastre. En punto flotante:

>>> diff(f,x).subs(x,(2*t+3)/(4*t)).evalf()
0.e-123

que es cero. Hasta aquí, todo bien. Comprobemos si $f (1) = \frac 12$ :

>>> f.subs(x,1)
0.500000000000000

¡Funciona! Por último, la función cuártica $f$ es

$$\boxed{\quad f (x) = \frac 12 \left( 3 \sqrt{3} + 6 + \sqrt{72 + 42 \sqrt{3}} \right) x^{4} - \left(3 \sqrt{3} + 7 + \sqrt{72 + 42 \sqrt{3}}\right) x^{3} + \quad \\ \qquad\quad + \frac 12 \left( 3 \sqrt{3} + 9 + \sqrt{72 + 42 \sqrt{3}} \right) x^{2} \quad}$$

Trazado de la gráfica de la función $f$ ,

plot of f

El máximo local se alcanza en

$$\frac{2t+3}{4t} = \frac{1}{2} \left( \dfrac{3 \sqrt{3} + 9 + \sqrt{72 + 42 \sqrt{3}}}{3 \sqrt{3} + 6 + \sqrt{72 + 42 \sqrt{3}}} \right) \approx 0.564579455317661$$

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