Python - Sympy Minima и Maxima

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

    import numpy as np
    from numpy import linspace, math, arange, linspace
    from sympy import *
    import sympy as sp
    import math

    x = Symbol('x')
    f = (x**4) - (24*x**2) + 80  
    fd = diff(f)
    fdd = diff(fd)
    print(fd)
    print(fdd)

    polyRoots = solveset(f,x)
    dRoots = solveset(fd,x) #gets critical x values
    ddRoots = solveset(fdd,x)

Как мне заменить значения, которые я получаю из dRoots, в исходное уравнение f и получить список значений?


person cmcgrath    schedule 21.11.2017    source источник


Ответы (1)


>>> from sympy import *
>>> x = Symbol('x')
>>> f = x**4 - 24*x**2 + 80
>>> fd = diff(f)
>>> fdd = diff(fd)
>>> polyRoots = solveset(f, x)
>>> dRoots = solveset(fd, x)
>>> ddRoots = solveset(fdd, x)
>>> dRoots
{0, -2*sqrt(3), 2*sqrt(3)}
>>> [_ for _ in dRoots]
[0, -2*sqrt(3), 2*sqrt(3)]
>>> [f.subs(x, _) for _ in dRoots]
[80, -64, -64]

Вы можете убедиться, что это имеет смысл, выполнив:

>>> [f.subs(x, _) for _ in polyRoots]
[0, 0, 0, 0]
person Bill Bell    schedule 21.11.2017