需要使用Symphy在Python中绘制和查找局部最大值和最小值的帮助。第一部分工作,但可以';I don’我不知道怎么做其他的部分

需要使用Symphy在Python中绘制和查找局部最大值和最小值的帮助。第一部分工作,但可以';I don’我不知道怎么做其他的部分,python,matplotlib,math,plot,sympy,Python,Matplotlib,Math,Plot,Sympy,这是我正在做的作业 我被要求使用Python和Symphy包来编写代码。我能得到A部分的正确输出 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/5)) * ((x-4)**2) fd = diff(f) #first derivative f

这是我正在做的作业

我被要求使用Python和Symphy包来编写代码。我能得到A部分的正确输出

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/5)) * ((x-4)**2)   
fd = diff(f) #first derivative
fdd = diff(fd) #second derivative (for later)
print("f' =", fd)

print("Critical Vales are:")
dRoots = solve(Eq(fd, 0)) #finds critical values
print(dRoots)
我不知道如何对B部分和C部分进行编码,其中要求局部最大值和最小值,以及区间
x上
f
的绘图∈ [−1、6]
。 到目前为止,我遇到了一个在'list'和'int'实例之间不支持的'>'错误

fdd_val=solve(等式(fdd,0))
如果fdd_val>0:
打印(“本地最大值=”,fdd_val)
如果fdd_val<0:
打印(“本地最小值=”,fdd_val)

一般来说,我们尽量避免在S.O.上发布家庭作业问题,但由于您真正尝试了解决问题,我将为您的代码提供一些提示和更正

from sympy import *
# Optimize imports -> if you don't need it, don't include it

x = Symbol('x')
f = (x**(4/5)) * ((x-4)**2)   
fd = diff(f) #first derivative

# pick more descriptive variable names: you'll thank yourself later. Like 'second_derivative' or even 'sd'
fdd = diff(fd) #second derivative (for later)
print("f' =", fd)

print("Critical Vales are:")

# call solve on fd like the documentation suggests.
dRoots = solve(fd) #finds critical values, returns a list
print(dRoots, '\n')
for root in dRoots:
    # Use function.subs(variable, value) to evaluate d2/dx^2 [f(x)] at each critical point
    fdd_val = fdd.subs(x, root)
    print(f"At root {root:.5g}, second derivative at this point is {fdd_val:.5g} which is "
          f"{'less' if fdd_val < 0 else 'greater'} than zero, so this is a local _____")
来自sympy导入的
*
#优化导入->如果你不需要它,就不要包含它
x=符号('x')
f=(x**(4/5))*((x-4)**2)
fd=diff(f)#一阶导数
#选择更具描述性的变量名:稍后您将感谢您自己。比如“二阶导数”甚至“sd”
fdd=diff(fd)#二阶导数(以后用)
打印(“f'=”,fd)
打印(“关键值为:”)
#如文档所示,在fd上调用solve。
dRoots=solve(fd)#查找临界值,返回列表
打印(下垂,“\n”)
对于根部下垂:
#使用function.subs(变量、值)计算每个临界点的d2/dx^2[f(x)]
fdd_val=fdd.subs(x,根)
print(f“在根{root:.5g}处,此时的二阶导数是{fdd_val:.5g},这是”
f“{less'如果fdd_val<0,否则'bether'}大于零,那么这是一个局部{uuuuu}”)

这段修改后的代码应该指出根据计算表达式的正确方法,并让您了解如何继续。你应该可以从这里结束。干杯

注意,
fdd_val
是一个可能值的列表。您可以在fdd_val:中使用
for val遍历列表,然后对列表中的每个元素进行
if
测试。请在您的帖子中添加作业文本。
from sympy import *
# Optimize imports -> if you don't need it, don't include it

x = Symbol('x')
f = (x**(4/5)) * ((x-4)**2)   
fd = diff(f) #first derivative

# pick more descriptive variable names: you'll thank yourself later. Like 'second_derivative' or even 'sd'
fdd = diff(fd) #second derivative (for later)
print("f' =", fd)

print("Critical Vales are:")

# call solve on fd like the documentation suggests.
dRoots = solve(fd) #finds critical values, returns a list
print(dRoots, '\n')
for root in dRoots:
    # Use function.subs(variable, value) to evaluate d2/dx^2 [f(x)] at each critical point
    fdd_val = fdd.subs(x, root)
    print(f"At root {root:.5g}, second derivative at this point is {fdd_val:.5g} which is "
          f"{'less' if fdd_val < 0 else 'greater'} than zero, so this is a local _____")