日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

ProE复杂曲线方程:Python Matplotlib 版本代码(L系统,吸引子和分形)

發(fā)布時(shí)間:2023/12/31 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ProE复杂曲线方程:Python Matplotlib 版本代码(L系统,吸引子和分形) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?????? 對(duì)生長(zhǎng)自動(dòng)機(jī)的研究由來已久,并在計(jì)算機(jī)科學(xué)等眾多學(xué)科中,使用元胞自動(dòng)機(jī)的概念,用于生長(zhǎng)模擬。而復(fù)雜花紋的生成,則可以通過重寫一定的生長(zhǎng)規(guī)則,使用生成式來模擬自然紋理。當(dāng)然,很多紋理是由人本身設(shè)計(jì)的,其形成過程本身就是在人腦中進(jìn)行“原胞生成”的過程。

??????? 基礎(chǔ)理論抄自于基礎(chǔ)百科。

??????? 來自于百度百科:L-系統(tǒng)是匈牙利生物學(xué)家Aristid LinderMayer于1968年提出的。.L-系統(tǒng)的本質(zhì)是一個(gè)重寫系統(tǒng),通過對(duì)植物對(duì)象生長(zhǎng)過程的經(jīng)驗(yàn)式概括和抽象,初始狀態(tài)與描述規(guī)則,進(jìn)行有限次迭代,生成字符發(fā)展序列以表現(xiàn)植物的拓?fù)浣Y(jié)構(gòu),并對(duì)產(chǎn)生的字符串進(jìn)行幾何解釋,就能生成非常復(fù)雜的分形圖形。

詳細(xì)介紹

一類動(dòng)態(tài)細(xì)胞自動(dòng)機(jī),在每一(時(shí)間)步上,其中的各個(gè)細(xì)胞可以由給定狀態(tài)變?yōu)橐粋€(gè)新的狀態(tài),或消亡或分裂為具有某種狀態(tài)組合的細(xì)胞串。A.林頓梅伊爾曾用這種細(xì)胞自動(dòng)機(jī)描述絲狀有機(jī)體的發(fā)育過程,所以叫作林頓梅伊爾系統(tǒng),簡(jiǎn)稱L系統(tǒng)。 在喬姆斯基形式語(yǔ)言理論中,字母表被分成終結(jié)字母表和非終結(jié)字母表部分,“字”是由終結(jié)字母組成的字母序列。在L系統(tǒng)中,沒有單獨(dú)的終結(jié)字母表,所有生成的字都在系統(tǒng)語(yǔ)言中;初始字母可以被初始字所代替;被注視的字所包含的各個(gè)字母同時(shí)進(jìn)行改寫。每個(gè)字母代表一個(gè)細(xì)胞,用字表示細(xì)胞陣列發(fā)展的階段。生成式對(duì)應(yīng)于發(fā)展指令,這些指令的應(yīng)用使有機(jī)體生長(zhǎng)成已知類型。消亡的細(xì)胞可以用空字e表示。細(xì)胞之間可以有,也可以沒有交互作用(信息傳遞)。有交互作用的有1L系統(tǒng)和2L系統(tǒng)。沒有交互作用的叫作0L系統(tǒng)。 0L系統(tǒng)是一個(gè)三元組Γ=(G,g,δ),其中G為一個(gè)有限非空集合,叫作字母表;g為G中元素的非空序列,即非空字;δ為一個(gè)(轉(zhuǎn)移)函數(shù),首先取作從G到G*(G中元素所能構(gòu)成的一切序列的集合)的有限非空子集的映射。然后,把δ擴(kuò)充為從G*到G*的有限非空子集的映射。 如果空字e不能替換任何字母,即對(duì) G中所有字母ɑ,都有e唘δ(ɑ),就稱Γ為增殖0L系統(tǒng),簡(jiǎn)稱P0L系統(tǒng);如果對(duì)字母表內(nèi)每一個(gè)字母有且只有一個(gè)轉(zhuǎn)移規(guī)則,即對(duì)G中所有ɑ,在G*中只有一個(gè)字p使δ(ɑ)={p},就稱Γ為確定的0L系統(tǒng),簡(jiǎn)稱 D0L系統(tǒng)。顯然(P0L∪D0L)吇0L。而既增殖又確定的DL系統(tǒng)稱為DP0L。


分別描述

從另一角度,元胞自動(dòng)機(jī)可視為動(dòng)力系統(tǒng),因而可將初始點(diǎn)、軌道、不動(dòng)點(diǎn)、周期軌和終極軌等一系列概念用到元胞自動(dòng)機(jī)的研究中,上述分類,又可以分別描述為(譚躍進(jìn),1996;謝惠民,1994;李才偉、1997); ⑴均勻狀態(tài),即點(diǎn)態(tài)吸引子,或稱不動(dòng)點(diǎn); ⑵簡(jiǎn)單的周期結(jié)構(gòu),即周期性吸引子,或稱周期軌; ⑶混沌的非周期性模式,即混沌吸引子; ⑷這第四類行為可以與生命系統(tǒng)等復(fù)雜系統(tǒng)中的自組織現(xiàn)象相比擬,但在連續(xù)系統(tǒng)中沒有相對(duì)應(yīng)的模式。但從研究元胞自動(dòng)機(jī)的角度講,最具研究?jī)r(jià)值的具有第四類行為的元胞自動(dòng)機(jī),因?yàn)檫@類元胞自動(dòng)機(jī)被認(rèn)為具有"突現(xiàn)計(jì)算"(Emergent Computation)功能,研究表明,可以用作廣義計(jì)算機(jī)(Universal Computer)以仿真任意復(fù)雜的計(jì)算過程。另外,此類元胞自動(dòng)機(jī)在發(fā)展過程中還表現(xiàn)出很強(qiáng)的不可逆(lrreversibility)特征,而且,這種元胞自動(dòng)機(jī)在若干有限循環(huán)后,有可能會(huì) "死"掉,即所有元胞的狀態(tài)變?yōu)榱恪?

Python代碼:

提前升級(jí)matplotlib:

?????? 為避免環(huán)境問題,切換至python3

或不擔(dān)心環(huán)境問題,或者在python2中

pip install --upgrade matplotlib 謹(jǐn)慎操作,容易出現(xiàn)問題

否則有可能找不到mpl_toolkits組件
L系統(tǒng)
def mainex():#drawsemilogx();#drawLorenzAttractor();#drawLeaf();#未成功#drawLSystem();#drawIsoLine();#drawFourFlower();#drawFlowers();drawBranch();#drawStar();#drawPillar(); #為了畫吸引子 def get_lines(rule):d = rule['direct']a = rule['angle']p = (0.0, 0.0)l = 1.0lines = []stack = []info = rule['S']for i in range(rule['iter']):ninfo = []for c in info:if c in rule:ninfo.append(rule[c])else:ninfo.append(c)info = "".join(ninfo)for c in info:if c in "Ff":r = d * pi / 180t = p[0] + l*cos(r), p[1] + l*sin(r)lines.append(((p[0], p[1]), (t[0], t[1])))p = telif c == "+":d += aelif c == "-":d -= aelif c == "[":stack.append((p,d))elif c == "]":p, d = stack[-1]del stack[-1]return linesdef draw(ax, rule, iter=None):if iter!=None:rule["iter"] = iterlines = get_lines( rule )linecollections = collections.LineCollection(lines)ax.add_collection(linecollections, autolim=True)ax.axis("equal")ax.set_axis_off()ax.set_xlim(ax.dataLim.xmin, ax.dataLim.xmax)ax.invert_yaxis()def drawBranch():fig = plt.figure(figsize=(8,6))fig.patch.set_facecolor("w")ax = fig.add_subplot(111);ruleBranch={"X":"F-[[X]+X]+F[+FX]-X", "F":"FF", "S":"X","direct":-45,"angle":25,"iter":4,"title":"Plant"}draw(ax, ruleBranch);fig.subplots_adjust(left=0,right=1,bottom=0,top=1,wspace=0,hspace=0)plt.show();
洛倫茲吸引子: def drawLorenzAttractor():xs, ys, zs = [], [], [];def mkPoints(): a, b, c = 10.0, 28.0, 8.0 / 3.0 h = 0.01 x0, y0, z0 = 0.1, 0, 0 for i in xrange(10000): x1 = x0 + h * a * (y0 - x0) y1 = y0 + h * (x0 * (b - z0) - y0) z1 = z0 + h * (x0 * y0 - c * z0) x0, y0, z0 = x1, y1, z1 xs.append(x0) ys.append(y0) zs.append(z0);mpl.rcParams["legend.fontsize"] = 10;fig = plt.figure() ax = Axes3D(fig) mkPoints();ax.plot(xs, ys, zs, label = "Lorenz's strange attractor") ax.legend() plt.show()
顯示結(jié)果:
?

總結(jié)

以上是生活随笔為你收集整理的ProE复杂曲线方程:Python Matplotlib 版本代码(L系统,吸引子和分形)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。