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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab常微分方程数值求解

發(fā)布時(shí)間:2023/12/29 循环神经网络 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab常微分方程数值求解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本節(jié)將介紹常微分方程初值問(wèn)題的數(shù)值求解,主要內(nèi)容分為三個(gè)部分:常微分方程數(shù)值求解的概念、求解函數(shù)及剛性問(wèn)題。
一、常微分方程數(shù)值求解的一般概念
首先,凡含有參數(shù),未知函數(shù)和未知函數(shù)導(dǎo)數(shù) (或微分) 的方程,稱(chēng)為微分方程,有時(shí)簡(jiǎn)稱(chēng)為方程,未知函數(shù)是一元函數(shù)的微分方程稱(chēng)作常微分方程,未知函數(shù)是多元函數(shù)的微分方程稱(chēng)作偏微分方程。微分方程中出現(xiàn)的未知函數(shù)最高階導(dǎo)數(shù)的階數(shù),稱(chēng)為微分方程的階。
常微分方程數(shù)值求解,指研究求解初值問(wèn)題各類(lèi)數(shù)值方法的構(gòu)造、理論分析與數(shù)值實(shí)現(xiàn)問(wèn)題。研究的主要對(duì)象為一階方程組初值問(wèn)題:

其中,其中y=y(x)是未知函數(shù),y(x0)=y0是初值條件,而f(x,y)是給定的二元函數(shù)。
所謂其數(shù)值解法,就是求y(x)在離散結(jié)點(diǎn)xn處的函數(shù)近似值yn 的方法 ,yn≈y(xn)。這些近似值稱(chēng)為常微分方程初值問(wèn)題的數(shù)值解。相鄰兩個(gè)結(jié)點(diǎn)之間的距離稱(chēng)為步長(zhǎng)。
這里主要介紹兩種:單步法和多步法
單步法:在計(jì)算y(n+1)時(shí)只用到前一步的y(n),因此在有了初值之后就可以逐步往下計(jì)算,其代表是龍格- - 庫(kù)塔( Runge- - Kutta ) 法
多步法:在計(jì)算y(n+1)時(shí),除了用到前一步的值y(n)之外, , 還要用到y(tǒng)(n-p)( p=1,2 , … ,k,k>0)的值, , 即前面的k步。其代表就是亞當(dāng)斯 (Adams) 法
更多介紹可參見(jiàn)這個(gè)鏈接:
https://wenku.baidu.com/view/cafe161b9a6648d7c1c708a1284ac850ad0204fc.html
二、常微分方程求解函數(shù)
MATLAB 提供了多個(gè)求常微分方程初值問(wèn)題數(shù)值解的函數(shù),一般調(diào)用格式為:
[t,y]=solver(filename,tspan,y0,option)
其中,t和y分別給出時(shí)間向量和相應(yīng)的數(shù)值解。solver為求常微分方程數(shù)值解的函數(shù)。filename 是定義 f(t ,y) 的函數(shù)名,該函數(shù)必須返回一個(gè)列向量。
tspan 形式為 [t0,tf],表示求解區(qū)間。 y0 是初始狀態(tài)向量。Option 是可選參數(shù),用于設(shè)置求解屬性,常用的屬性包括相對(duì)誤差值 RelTol(默認(rèn)值是10的-3次方)和絕對(duì)誤差值 AbsTol( ( 默認(rèn)值是10的-6次方)。
常微分方程數(shù)值求解函數(shù)的統(tǒng)一命名格式:
odennx
ode是Ordinary Differential Equation 的縮寫(xiě),是常微分方程的意思。
nn 是數(shù)字,代表所用方法的階數(shù)。例如,ode23采用2階龍格- - 庫(kù)塔( Runge- - Kutta )算法 ,用3階公式做誤差估計(jì)來(lái)調(diào)節(jié)步長(zhǎng),具有低等精度。ode45 采用4階龍格- - 庫(kù)塔算 法 ,用5階公式做誤差估計(jì)來(lái)調(diào)節(jié)步長(zhǎng),具有中等精度。
x是字母,用于標(biāo)注方法的專(zhuān)門(mén)特征。例如, ode15s 、ode23s 中的“s”代表( Stiff ),表示函數(shù)適用于剛性方程。
下表列出了求常微分方程數(shù)值解的函數(shù):

求解函數(shù)采用方法適用場(chǎng)合
ode232 階或3階 Runge- - Kutta 算法,低精度非剛性
ode454 階或5階 Runge- - Kutta 算法,中精度非剛性
ode113Adams 算法,精度可到10的-3次方至10的-6次方非剛性,計(jì)算時(shí)間比 ode45
ode23t梯形算法適度剛性
ode15sGear’s 反向數(shù)值微分算法,中精度剛性
ode23s2階 Rosebrock 算法,低精度剛性,當(dāng)精度較低時(shí),計(jì)算時(shí)間比 ode15s
ode23tb梯形算法,低精度剛性,當(dāng)精度較低時(shí),計(jì)算時(shí)間比 ode15s

先看一個(gè)簡(jiǎn)單例子,y‘=y+3x/x^2,初值y(0)=-2,求解區(qū)間為[1,4]。

>> odefun=@(x,y) (y+3*x)/x^2; tspan=[1 4]; y0=-2; [x y]=ode45(odefun,tspan,y0) plot(x,y)

二、剛性問(wèn)題
有一類(lèi)常微分方程,其解的分量有的變化很快,有的變化很慢,且相差懸殊,這就是所謂的剛性問(wèn)題 (Stiff) 。
對(duì)于剛性問(wèn)題,數(shù)值解算法必須取很小步長(zhǎng)才能獲得滿意的結(jié)果,導(dǎo)致計(jì)算量會(huì)大大增加。解決剛性問(wèn)題需要有專(zhuān)門(mén)方法。非剛性算法可以求解剛性問(wèn)題,只不過(guò)需要很長(zhǎng)的計(jì)算時(shí)間。
例、假如點(diǎn)燃一個(gè)火柴,火焰球迅速增大直至某個(gè)臨界體積,然后,維持這一體積不變,原因是火焰球內(nèi)部燃燒耗費(fèi)的氧氣和從球表面所獲氧氣達(dá)到平衡。其簡(jiǎn)化模型如下:
y’=y2-y3,y(0)=L,0<=t<=2/L
其中, y(t) 代表火焰球半徑,初始半徑是λ ,它很小。分析 λ 的大小對(duì)方程求解過(guò)程的影響。

>> L=0.01; f=@(t,y) y^2-y^3; tic;[ t,y ]=ode45(f,[0,2/L],L); toc disp (['ode45 計(jì)算的點(diǎn)數(shù)' num2str(length(t))]); 時(shí)間已過(guò) 0.003704 秒。 ode45 計(jì)算的點(diǎn)數(shù)157 >> L=1e-5; f=@(t,y) y^2-y^3; tic;[ t,y ]=ode45(f,[0,2/L],L); toc disp (['ode45 計(jì)算的點(diǎn)數(shù)' num2str(length(t))]); 時(shí)間已過(guò) 1.010016 秒。 ode45 計(jì)算的點(diǎn)數(shù)120565 >> L=1e-5; f=@(t,y) y^2-y^3; tic;[ t,y ]=ode15s(f,[0,2/L],L); toc disp (['ode45 計(jì)算的點(diǎn)數(shù)' num2str(length(t))]); 時(shí)間已過(guò) 0.189977 秒。 ode45 計(jì)算的點(diǎn)數(shù)98

注:tic 和 toc 函數(shù) 用來(lái)記錄 微分方程求解 命令執(zhí)行的時(shí)間 ,使用 tic 函數(shù)啟動(dòng)計(jì)時(shí)器,使用 toc 函數(shù)顯示從計(jì)時(shí)器啟動(dòng)到當(dāng)前所經(jīng)歷的時(shí)間。
上述采用了三種不同方法,可以發(fā)現(xiàn),第一種的運(yùn)行結(jié)果表明這時(shí)常微分方程不算很剛性;第二種這時(shí)計(jì)算時(shí)間明顯加長(zhǎng),計(jì)算的點(diǎn)數(shù)劇增,表明這時(shí)常微分方程表現(xiàn)為剛性;因此對(duì)于剛性問(wèn)題,我們需要改變求解算法,我們選擇以“s”結(jié)尾的函數(shù),例如第三種方法他們專(zhuān)門(mén)用于求解剛性方程。計(jì)算時(shí)間大大縮短,計(jì)算的點(diǎn)數(shù)大大減少。
常微分方程數(shù)值解法的研究已發(fā)展得相當(dāng)成熟,理論上也頗為完善,小編由于能力有限,只能了解個(gè)大概,本文講解也就寫(xiě)的是比較基礎(chǔ)的一些方面,如果大家有更多需求,可以自己查閱相關(guān)資料。

關(guān)于MATLAB的學(xué)習(xí):

大家可以關(guān)注我們的知乎專(zhuān)欄——數(shù)據(jù)可視化和數(shù)據(jù)分析中matlab的使用:
https://zhuanlan.zhihu.com/c_1131568134137692160

歡迎大家加入我們的MATLAB學(xué)習(xí)交流群:
953314432
掃碼關(guān)注我們
發(fā)現(xiàn)更多精彩

總結(jié)

以上是生活随笔為你收集整理的matlab常微分方程数值求解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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