Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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_Math_Coordinates - Fatal编程技术网

python中的随机平滑斜率

python中的随机平滑斜率,python,math,coordinates,Python,Math,Coordinates,如何使用python创建随机平滑坡度(如)?在生成坐标列表时创建,x以恒定速率增加。我知道类似的问题已经被提出和回答了,但我没有发现专门针对python的问题 提前谢谢 在任何计算机语言中都无法获得完全平滑的任意曲线,因为该语言处理有限多个数据段,而曲线需要无限多个数据段。即使您显示的图形在水平方向上也只有1309个像素 Python中绘制看起来平滑的图形的常用方法是为x坐标创建许多值。对图形执行此操作的常用方法是 import numpy as np x = np.linspace(-2.0

如何使用python创建随机平滑坡度(如)?在生成坐标列表时创建,x以恒定速率增加。我知道类似的问题已经被提出和回答了,但我没有发现专门针对python的问题


提前谢谢

在任何计算机语言中都无法获得完全平滑的任意曲线,因为该语言处理有限多个数据段,而曲线需要无限多个数据段。即使您显示的图形在水平方向上也只有1309个像素

Python中绘制看起来平滑的图形的常用方法是为x坐标创建许多值。对图形执行此操作的常用方法是

import numpy as np

x = np.linspace(-2.0, 26.0, num=1000)
注意,我使用了1000个x值。然后创建相应的y值。如果需要随机曲线,请在表达式中使用一些随机参数。以下是一个例子:

y = ((x - uniform(-2, 26)) * (x - uniform(-2, 26)) * (x - uniform(-2, 26))
    * (x - uniform(-2, 26)))
还有很多其他的方法可以随机定义一个函数——我选择了一个,一个为曲线选择四个随机x截距。让我知道你想要什么的更多细节,我也许能为你定义另一个

然后在图形包(如matplotlib)中打印这些值。下面是一个代码示例及其结果。此版本将y值限制在0到10之间,并定义了一个函数
randomfunc
,在生成图形后,可以使用该函数计算任意特定x的y值。要查找x=1处的y值,请执行
randomfunc(1,x1,x2,x3,x4,ymax,ymin)


但是,我该如何将其随机化?(-2,26)是什么意思?此外,如何更改坡度?10000对我来说太高了,我需要10作为最大y值@Rorydaulton最后一个请求,是否有方法打印出坐标列表,比如x的每个整数@RoryDaulton@TaeRugh:我编辑例程以定义一个函数,该函数可以为任何给定的x值查找y值。您还需要为图形中使用的特定函数传递计算出的参数——我给出了一个示例。在本例中,我发现使用numpy的随机例程比我在以前版本中使用的Python更简单。
import numpy as np
import matplotlib.pyplot as plt

# Key values
xmin = -2.0
xmax = 26.0
scale = 10.0

def randomfunctemp(x, x1, x2, x3, x4):
    return (x-x1) * (x-x2) * (x-x3) * (x-x4)

def randomfunc(x, x1, x2, x3, x4, ymax, ymin):
    return (randomfunctemp(x, x1, x2, x3, x4) - ymin)  / (ymax - ymin) * scale

x = np.linspace(xmin, xmax, num=1000)
x1, x2, x3, x4 = np.random.uniform(xmin, xmax, 4)
y = randomfunctemp(x, x1, x2, x3, x4)
ymax, ymin = y.max(), y.min()
y = randomfunc(x, x1, x2, x3, x4, ymax, ymin)

plt.plot(x,y)
plt.show()