我想将递归公式用作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。
答案 0 :(得分:1)
看来您是Python的新手!有两种语法模式可以帮助您:
return 键将终止功能,因此函数f()中 return 关键字下方的所有代码均无效。
等号的左侧应该是您要分配/修改的变量。在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的值并返回一个值,尽管从示例代码来看,您可能做的事情比这还要复杂!