Python 如何将运算符设置为for循环中的函数?

Python 如何将运算符设置为for循环中的函数?,python,python-3.x,Python,Python 3.x,我想用一个递归公式,x(I+1)=x(I)+h 我如何在for循环中输入它,同时找到与之对应的y值并将其分配到数组中。我试过了 for i in range(n): i+1 = y(i) + h dydx[i] = (y[i+1]+y[i-1]-y[i])/h**2 dydx0 = [dydx[0]] print(dydx0) 这显然给了我一个错误,但我想不出如何用另一种方法来做到这一点。有人能帮忙吗 def f(x): return cos(pi*e

我想用一个递归公式,x(I+1)=x(I)+h 我如何在for循环中输入它,同时找到与之对应的y值并将其分配到数组中。我试过了

for i in range(n):
    i+1 = y(i) + h 
    dydx[i] = (y[i+1]+y[i-1]-y[i])/h**2
    dydx0 = [dydx[0]]
    print(dydx0)
这显然给了我一个错误,但我想不出如何用另一种方法来做到这一点。有人能帮忙吗

def f(x):
    return cos(pi*exp(-x))
    h = 0.01
    x = linspace(a,b,n+1)
    print(x)
    y = f(x)
    dydx = zeros(n+1)

for i in range(n):

    dydx[i] = (y[i+1]+y[i-1]-y[i])/h**2
    dydx0 = [dydx[0]]
    print(dydx0)

在dydx公式中,当我计算dydx[I]=(y[I+1]+y[I-1]-y[I])/h**2时,我想做y(x+h)+y(x-h)-y(x)/h,但使用I作为x[I+1]=x[I]+h。因此,例如y[i+1]应该是在x[i+1]处计算y的平均值,其本身取决于h..

看起来您对Python非常陌生!有两种句法模式可以帮助您进行以下操作:

  • return键将结束一个函数,因此函数f()中return关键字下面的任何代码都不起作用

  • 等号的左侧应该是要分配/修改的变量。在python中,这类行:

    i+1=y(i)+h

    左侧为“向i添加1”,右侧为“在给定参数i时向函数y的结果添加h”。这完全是错误的

  • 如果你的目标是

    [使用]递归公式x(i+1)=x(i)+h我如何在for循环中输入它,同时找到对应的y值并将其分配到数组中

    您的代码看起来更像这样:

    values_of_x = []
    values_of_y = []
    initial_x = 10
    number_of_recursions = 100 
    
    
    values_of_x.append(initial_x)
    values_of_y.append(y(initial_x))
    
    
    for i in range(number_of_recursions):
        current_x = values_of_x[-1]
        next_x = current_x + h
        next_y = y(next_x)
        values_of_x.append(next_x)
        values_of_y.append(next_y)
    
    print('Values of x displayed below:')
    print(values_of_x)
    print('Values of y displayed below:')
    print(values_of_y)
    

    这假设您已经定义了一个函数y(),该函数接受x的值并返回一个值,尽管从示例代码判断,您可能正在做比这更复杂的事情

    请修复缩进和格式部分的格式已经为您修复,但我仍然不认为这可以回答。请查看如何创建缩进,缩进仍然不正确。您能澄清您的问题吗?在dydx公式中,当我计算dydx[I]=(y[I+1]+y[I-1]-y[I])/h**2时,我想计算y(x+h)+y(x-h)-y(x)/h,但使用I作为x[I+1]=x[I]+h。例如,y[i+1]应该是平均值,在x[i+1]处计算y,它本身取决于h。,对不起,我现在编辑了这个问题@roganjosh