最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+NumPy繪制常見曲線的方法詳解

 更新時(shí)間:2022年06月11日 08:41:59   作者:PursuitingPeak  
NumPy(Numerical Python)是Python的一種開源的數(shù)值計(jì)算擴(kuò)展。本文將利用NumPy庫繪制利薩茹曲線、計(jì)算斐波那契數(shù)列、方波和鋸齒波和三角波,需要的可以參考一下

在NumPy中,所有的標(biāo)準(zhǔn)三角函數(shù)如sin、cos、tan等均有對(duì)應(yīng)的通用函數(shù)。

一、利薩茹曲線

(Lissajous curve)利薩茹曲線是一種很有趣的使用三角函數(shù)的方式(示波器上顯示出利薩茹曲線)。利薩茹曲線由以下參數(shù)方程定義:

x = A sin(at + n/2)

y = B sin(bt)

利薩茹曲線的參數(shù)包括 A 、 B 、 a 和 b 。為簡單起見,我們令 A 和 B 均為1,設(shè)置的參數(shù)為 a=9 , b=8

import numpy as np
import matplotlib.pyplot as plt

A=B=1
a=9
b=8

t = np.linspace(-np.pi, np.pi, 201)  #使用linspace函數(shù)初始化變量t
x = np.sin(a * t + np.pi/2)  # sin 函數(shù)和NumPy常量 pi 計(jì)算變量 x 
y = np.sin(b * t)  # sin函數(shù)計(jì)算變量y
plt.plot(x, y)
plt.show()

運(yùn)行結(jié)果:

二、計(jì)算斐波那契數(shù)列

斐波那契數(shù)列的遞推關(guān)系可以用矩陣來表示。斐波那契數(shù)列的計(jì)算等價(jià)于矩陣的連乘??捎脙煞N方法計(jì)算了斐波那契數(shù)列

1)黃金比例計(jì)算方法,使用 rint 函數(shù)對(duì)浮點(diǎn)數(shù)取整但不改變浮點(diǎn)數(shù)類型

1,1,2,3,5,8,13,21,34,55,89,……

#   斐波那契數(shù),用黃金分割公式或通常所說的比奈公式,加上取整函數(shù)
n = np.arange(1, 9)
sqrt5 = np.sqrt(5)
phi = (1 + sqrt5)/2 #利用根號(hào)5計(jì)算黃金比例,或者直接用phi=1+0.618 
print("比例:",phi)
print('\n')
fibonacci = np.rint((phi**n - (-1/phi)**n)/sqrt5)  #用rint()函數(shù)對(duì)浮點(diǎn)數(shù)取整但不改變浮點(diǎn)數(shù)類型
print("Fibonacci", fibonacci)

2)利用矩陣進(jìn)行計(jì)算:用 matrix 函數(shù)創(chuàng)建矩陣

# 斐波那契數(shù),用矩陣來表示斐波那契數(shù)列的遞推關(guān)系
F = np.matrix([[1, 1], [1, 0]])
print ("8th Fibonacci:", (F ** 10)[0, 0])

運(yùn)行結(jié)果:

比例: 1.618033988749895

Fibonacci [ 1.  1.  2.  3.  5.  8. 13. 21.]
8th Fibonacci: 89

三、方波

方波可以近似表示為多個(gè)正弦波的疊加。任意一個(gè)方波信號(hào)都可以用無窮傅里葉級(jí)數(shù)來表示。

需要累加很多項(xiàng)級(jí)數(shù),且級(jí)數(shù)越多結(jié)果越精確,這里取 k=99(可以分別設(shè)置為9,50,1000等進(jìn)行測試觀察生成效果) 以保證足夠的精度。繪制方波的步驟如下。

1) 初始化 t 和 k 開始,并將函數(shù)值初始化為

m = np.linspace(-np.pi, np.pi, 201) #從 -pi 到 pi 上均勻分布的 201 個(gè)點(diǎn)
k = np.arange(1,99)   # k=99 以保證足夠的精度,如圖中的9 20 99顯示的波形
k = 2 * k - 1
f = np.zeros_like(m)

2)使用 sin()求正弦函數(shù),用sum()數(shù)計(jì)算各項(xiàng)級(jí)數(shù):

for i in range(len(m)):  #使用 sin 和 sum 函數(shù)進(jìn)行計(jì)算
    f[i] = np.sum(np.sin(k * m[i])/k)
f = (4 / np.pi) * f

3)繪制波形

plt.plot(t, f)
plt.show()

四、鋸齒波和三角波

鋸齒波和三角波也是常見的波形。和方波類似,也可以將它們表示成無窮傅里葉級(jí)數(shù)。對(duì)鋸齒波取絕對(duì)值即可得到三角波。鋸齒波的無窮級(jí)數(shù)表達(dá)式如下:

import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(-np.pi, np.pi, 201)
k = np.arange(1, 99)
f = np.zeros_like(t)
for i in range(len(t)):
    f[i] = np.sum(np.sin(2 * np.pi * k * t[i])/k)

f = (-2 / np.pi) * f
plt.plot(t, f, lw=1.0)
plt.plot(t, np.abs(f), lw=2.0)
plt.show()

運(yùn)行結(jié)果:

以上就是Python+NumPy繪制常見曲線的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python NumPy繪制曲線的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談python字典多鍵值及重復(fù)鍵值的使用

    淺談python字典多鍵值及重復(fù)鍵值的使用

    下面小編就為大家?guī)硪黄獪\談python字典多鍵值及重復(fù)鍵值的使用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • 使用Pytorch來擬合函數(shù)方式

    使用Pytorch來擬合函數(shù)方式

    今天小編就為大家分享一篇使用Pytorch來擬合函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python如何實(shí)現(xiàn)常用的五種排序算法詳解

    python如何實(shí)現(xiàn)常用的五種排序算法詳解

    排序有很多種實(shí)現(xiàn)方法,比如冒泡排序、選擇排序、歸并排序、希爾排序、快速排序、插入排序、堆排序、基數(shù)排序等,這篇文章主要給大家介紹了關(guān)于python如何實(shí)現(xiàn)常用的五種排序算法,需要的朋友可以參考下
    2021-08-08
  • python pickle存儲(chǔ)、讀取大數(shù)據(jù)量列表、字典數(shù)據(jù)的方法

    python pickle存儲(chǔ)、讀取大數(shù)據(jù)量列表、字典數(shù)據(jù)的方法

    pickle模塊實(shí)現(xiàn)了用于序列化和反序列化python對(duì)象結(jié)構(gòu)的二進(jìn)制協(xié)議。這篇文章主要介紹了python pickle存儲(chǔ)、讀取大數(shù)據(jù)量列表、字典的數(shù)據(jù),需要的朋友可以參考下
    2019-07-07
  • python實(shí)現(xiàn)兩個(gè)經(jīng)緯度點(diǎn)之間的距離和方位角的方法

    python實(shí)現(xiàn)兩個(gè)經(jīng)緯度點(diǎn)之間的距離和方位角的方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)兩個(gè)經(jīng)緯度點(diǎn)之間的距離和方位角的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python怎么去除字符串最后的換行符‘\n’

    python怎么去除字符串最后的換行符‘\n’

    這篇文章主要介紹了python去除字符串最后的換行符'\n',本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • 跟老齊學(xué)Python之總結(jié)參數(shù)的傳遞

    跟老齊學(xué)Python之總結(jié)參數(shù)的傳遞

    這篇文章主要介紹了Python參數(shù)的傳遞的總結(jié),非常的實(shí)用,有需要的朋友可以參考下
    2014-10-10
  • Python subprocess模塊功能與常見用法實(shí)例詳解

    Python subprocess模塊功能與常見用法實(shí)例詳解

    這篇文章主要介紹了Python subprocess模塊功能與常見用法,結(jié)合實(shí)例形式詳細(xì)分析了subprocess模塊功能、常用函數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2018-06-06
  • Python解析MySQL Binlog日志分析情況

    Python解析MySQL Binlog日志分析情況

    文章介紹了如何使用Python解析MySQL的binlog日志,并通過分析binlog來了解數(shù)據(jù)庫的變動(dòng)情況,如大事務(wù)、頻繁更新的表等,文章詳細(xì)描述了binlog的結(jié)構(gòu)、事件類型以及如何通過解析這些事件來獲取所需的信息,最后,文章提供了一個(gè)示例代碼
    2025-01-01
  • python?pandas庫讀取excel/csv中指定行或列數(shù)據(jù)

    python?pandas庫讀取excel/csv中指定行或列數(shù)據(jù)

    通過閱讀表格,可以發(fā)現(xiàn)Pandas中提供了非常豐富的數(shù)據(jù)讀寫方法,下面這篇文章主要給大家介紹了關(guān)于python利用pandas庫讀取excel/csv中指定行或列數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-02-02

最新評(píng)論

新兴县| 绿春县| 新干县| 青海省| 武安市| 吴忠市| 香港 | 松潘县| 沽源县| 曲靖市| 板桥市| 莒南县| 遵义县| 云南省| 休宁县| 永兴县| 红桥区| 五大连池市| 剑阁县| 满洲里市| 宜宾县| 明星| 呈贡县| 贵港市| 西乌| 兰西县| 柳江县| 泗洪县| 衢州市| 伊春市| 微山县| 乌拉特中旗| 马尔康县| 伊宁市| 大荔县| 桂阳县| 葵青区| 苗栗县| 彭水| 双柏县| 图片|