Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python错误=>';浮动';对象是不可编辑的_Python_Sympy - Fatal编程技术网

Python错误=>';浮动';对象是不可编辑的

Python错误=>';浮动';对象是不可编辑的,python,sympy,Python,Sympy,我不知道你为什么不跑? 如果我运行,只显示消息“'Float'对象不可编辑”。 我哪里出错了?请告诉我错误在哪里。问题是flx.subs({x\u old})-应该是{x:x\u old}或类似的东西。包括完整的错误回溯。始终要考虑完整的错误消息。问题可能重复。 #Grdient acent from sympy import Derivative, Symbol, sympify, solve from sympy.core.sympify import SympifyError def gr

我不知道你为什么不跑? 如果我运行,只显示消息“'Float'对象不可编辑”。
我哪里出错了?请告诉我错误在哪里。

问题是
flx.subs({x\u old})
-应该是
{x:x\u old}
或类似的东西。

包括完整的错误回溯。始终要考虑完整的错误消息。问题可能重复。
#Grdient acent
from sympy import Derivative, Symbol, sympify, solve
from sympy.core.sympify import SympifyError
def grad_ascent(x0, flx, x):

    if not solve(flx):
        print('Cannot continue, solution for {0}=0 does not exist'.format(flx))
        return
    epsilon= 1e-6
    step_size= 1e-4
    x_old= x0
    x_new= x_old+step_size*flx.subs({x: x_old}).evalf()
    while abs(x_old-x_new)>epsilon:
        x_old= x_new
        x_new= x_old+step_size*flx.subs({x_old}).evalf()
    return x_new

if __name__=='__main__':

    f=input('Enter a function in one variable: ')
    var=input('Enter the variable to differenriate with respect to: ')
    var0=float(input('Enter the initial value of the variable: '))
    try:
        f=sympify(f)
    except SympifyError:
        print("Invalid function entered ")
    else:
        var=Symbol(var)
        d=Derivative(f, var).doit()
        var_max=grad_ascent(var0, d, var)
        if var_max:
            print('{0}:{1}'.format(var.name, var_max))
            print('Maximum value: {0}'.format(f.subs({var:var_max})))