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

时间:2018-11-01 21:27:00

标签: 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*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 [i] =(y [i + 1] + y [i-1] -y [i])/ h时在dydx公式中

我想做y(x + h) + y(xh)-y(x)/ h,但将i用作x [i + 1] = x [i] + h。因此,例如y [i + 1]应该是x [i + 1]的均值y,它本身取决于h。

1 个答案:

答案 0 :(得分:1)

看来您是Python的新手!有两种语法模式可以帮助您:

  1. return 键将终止功能,因此函数f()中 return 关键字下方的所有代码均无效。

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

    i + 1 = y(i)+ h

    在左边读为“对i加1”,在右边读为“将给定参数i的函数y的结果加h”。都是错的

如果您的目标是

  

[使用]递归公式为x(i + 1)= x(i)+ h如何在for循环中输入它,又如何找到与之相对应的y-值并将其分配到数组中。 / p>

您的代码看起来像这样:

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的值并返回一个值,尽管从示例代码来看,您可能做的事情比这还要复杂!