首页 > 解决方案 > 绘制数学求和函数 (Alpine1)

问题描述

我正在寻找使用 Python 绘制 Alpine1 函数。该函数如下所示:

alp(x_1,…,x_n )= ∑_(i=1)^n〖|x_i * sin(x_i )+1.01x_i |〗</p>

高山1

所以函数求和 ( from i=1 to n) 的绝对值xi*sin(xi) +1.01xi。如果没有求和,Python 中的函数如下所示:

def f(x):
   return (abs(x * np.sin(x) + 1.01 * x))

但是,这里我使用 x 而不是 xi 并且总和被忽略了。如何正确实现求和from i=1 to n?简单地使用 sum() 只给出一个值,而我需要一个数组。

我想我需要寻找一种for i in range(1,...)事物的方向,但我无法弄清楚。

提前感谢可以帮助我的人!

标签: pythonnumpysum

解决方案


Python 和其他语言中的求和通常使用for循环来实现。在上面的公式中,您循环遍历所有元素 x 1、 x 2、 x 3 ... x n

现在为了存储这些值,我们使用一个数组,或者特别是在 python 中一个列表,它基本上是一个数据集合(其中顺序很重要)。

x = [x_1, x_2, x_3 ... x_n]

这将是您的功能的输入f(x)。要遍历 x 中的所有值,我们使用语法。

for x_i in x:
    print(x_i)

这将打印所有值,即 x_1、x_2、x_3 ... x_n。

现在我们将声明一个变量summation = 0并存储您在问题中提到的所需计算的值,并在遍历所有 x 值后返回求和值。

summation = 0
for x_i in x:
    summation = summation + (abs(x_i * np.sin(x_i) + 1.01 * x_i))
#Note we returned the summation without the indentation
#so that it is out of the for loop.
return summation

推荐阅读