1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 强大的Python-使用NumPy和Matplotlib绘制数学(双纽线 阿基米德螺线 心形线)

强大的Python-使用NumPy和Matplotlib绘制数学(双纽线 阿基米德螺线 心形线)

时间:2019-07-14 05:17:03

相关推荐

强大的Python-使用NumPy和Matplotlib绘制数学(双纽线 阿基米德螺线 心形线)

强大的Python-使用NumPy和Matplotlib绘制数学(双纽线,阿基米德螺线,心形线)

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

首先使用pip下载numpy和matplotlib

双纽线

import numpy as np

import matplotlib.pyplot as plt

alpha = 1

#numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

#np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

#start 序列的起始值

#stop 序列的终止值,如果endpoint为true,该值包含于数列中

#num 要生成的等步长的样本数量,默认为50

#endpoint 该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。

#retstep 如果为 True 时,生成的数组中会显示间距,反之不显示。

#dtype ndarray 的数据类型

theta = np.linspace(0,2*np.pi,num=500)

x = alpha * np.sqrt(2) * np.cos(theta) / (np.sin(theta)**2+1)

y = alpha * np.sqrt(2) * np.cos(theta) * np.sin(theta)/(np.sin(theta)**2+1)

plt.title(r"$\rho^{2}=a^{2}\cos 2\theta\quad a=1$")

plt.plot(x,y)

plt.grid()

plt.show()

阿基米德螺线

import numpy as np #阿基米德螺线

import matplotlib.pyplot as plt

#Numpy 中 arange() 主要是用于生成数组 具体用法如下:

#numpy.arange(start stop step dtype = None)

#start 开始位置 数字,可选项 默认起始值为0

#stop 停止位置 数字

#step 步长 数字 可选项 默认步长为1 如果指定了step 则还必须给出start

#dtype 输出数组的类型 如果未给出dtype 则从其他输入参数推断数据类型

t = np.arange(-3*np.pi,3*np.pi,0.01)

x = t*np.cos(t)

y = t*np.sin(t)

plt.title(r"$\rho=a\theta\quad a=1$")

plt.plot(x,y)

plt.show()

plt.plot(x,y)

plt.grid()

plt.show()

心形线

r=a(1-sinθ)

import matplotlib.pyplot as plt #心形线

import numpy as np

t = np.arange(0, 2*np.pi,0.01)

x = 20 * np.sin(t) **3

y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)

plt.plot(x,y)

plt.grid()

plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。