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

歡迎訪問 生活随笔!

生活随笔

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

循环神经网络

微分方程在matlab中的实现,Matlab微分方程参数优化的Forcal实现

發(fā)布時間:2023/12/9 循环神经网络 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微分方程在matlab中的实现,Matlab微分方程参数优化的Forcal实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

FCC文件

缺省設(shè)置:

(XNote=請修改為X軸單位) (YNote=請修改為Y軸單位)

(AutoY=1) (XMin=0) (XMax=1) (YMin=0) (YMax=1)

(BorderPixels=60) (MultiplyX=1) (MultiplyY=1) (Grid=0) (DivideXY=10) (XYNumWidth=3) (DataMax=2)

(ForMax=50) (LoadDll=)

[CODE]

// 通用設(shè)置:

// (XNote=請修改為X軸單位) (YNote=請修改為Y軸單位)

// (AutoY=1) (XMin=0) (XMax=30) (YMin=0) (YMax=1)

// (BorderPixels=80) (MultiplyX=1) (MultiplyY=1) (Grid=0) (DivideXY=10)??(XYNumWidth=3) (DataMax=6)

// (ForMax=50) (LoadDll="dll\FcData32W" "dll\XSLSF32W") (DotColor=0) (DotSize=10)

/*[LINE]

(_DataDot0=1,30,0,3,16711680)

(_DataLine0=1,1000,0,0,12615680)

(_DataDot1=1,30,0,3,0)

(_DataLine1=1,1000,0,0,65408)

(_DataDot2=1,30,0,3,16776960)

(_DataLine2=1,1000,0,0,16776960)

(_DataDot3=1,300,0,3,255)

(_DataLine3=1,1000,0,0,255)

(_DataDot4=1,300,0,3,16711935)

(_DataLine4=1,1000,0,0,16711935)

(_DataDot5=1,300,0,3,8388863)

(_DataLine5=1,1000,0,0,8388863)

[LEND]*/

// [BODY]

//這里是代碼窗口,請將Forcal代碼寫在下面

i: OutVector(p:k,i)= k=FCDLen(p),printff{"\r\n"},i=0,(i

{"\r\n"};? ? //輸出一維數(shù)組

!using["XSLSF"]; //使用命名空間XSLSF

f(t,x,y,z,dx,dy,dz::p1,p2,p3)={ //函數(shù)定義,連分式法對微分方程組積分一步函數(shù)pbs1中要用到

dx=p1*(20-x)+p2*(p3-x),

dy=p1*(x-y)+p2*(p3-y),

dz=p1*(y-z)+p2*(p3-z)

};

t_i_2(hf,a,step,eps,t1,t2,x_1,x_2,x_3:x1,x2,x3,h,i)=? ? //用于計算目標(biāo)函數(shù)

{

h=(t2-t1)/step,

{? ?pbs1[hf,t1,a,h,eps],??//連分式法對微分方程組積分一步函數(shù)pbs1,hf為函數(shù)f的句柄

t1=t1+h

}.until[abs(t1-t2)

a.getra(0,&x1,&x2,&x3),

(x1-x_1)^2+(x2-x_2)^2+(x3-x_3)^2

};

J(_p1,_p2,_p3 : t1,s,i : hf,Array,step,eps,p1,p2,p3,數(shù)據(jù))={? ? //目標(biāo)函數(shù)定義

p1=_p1,p2=_p2,p3=_p3,

t1=0, Array.setra(0,10,15,20),

s=0,i=0,

(i<30).while{

s=s+t_i_2[hf,Array,step,eps: &t1, 數(shù)據(jù).getrai(i,0) : 數(shù)據(jù).getrai(i,1),??數(shù)據(jù).getrai(i,2),??數(shù)據(jù).getrai(i,3)],

i++

},

s

};

驗證(_p1,_p2,_p3 : t1,s1,s2,s3,i max: hf,Array,step,eps,p1,p2,p3,數(shù)據(jù))={? ? //驗證函數(shù)定義

p1=_p1,p2=_p2,p3=_p3,

t1=0, Array.setra(0,10,15,20),

i=0, printff{"\r\n? ? No? ?? ?? ?? ?? ? 目標(biāo)x? ?? ?? ?? ?? ?? ?計算x? ?? ?? ?? ?? ???目標(biāo)y? ?? ?? ?? ?? ???計算y? ?? ?? ?? ?? ???目標(biāo)z? ?? ?? ?? ?? ???計算z\r\n\r\n"},

(i<30).while{

t_i_2[hf,Array,step,eps: &t1, 數(shù)據(jù).getrai(i,0) : 數(shù)據(jù).getrai(i,1),??數(shù)據(jù).getrai(i,2),??數(shù)據(jù).getrai(i,3)],

Array.getra(0,&s1,&s2,&s3),

printff{"{1,r,6.3}{2,r,22.16}{3,r,22.16}{4,r,22.16}{5,r,22.16}{6,r,22.16}{7,r,22.16}\r\n",數(shù)據(jù).getrai(i,0),數(shù)據(jù).getrai(i,1),s1,數(shù)據(jù).getrai(i,2),s2,數(shù)據(jù).getrai(i,3),s3},

i++

},

//將理論數(shù)據(jù)保存到3、4、5號緩沖區(qū)

max=300,

SetDataLen(3,max),SetDataLen(4,max),SetDataLen(5,max),

i=1,t1=0, Array.setra(0,10,15,20),SetDatai(3,0,0,10),SetDatai(4,0,0,15),SetDatai(5,0,0,20),

(i

t_i_2[hf,Array,step,eps: &t1, i/10 : 0,??0,??0],

Array.getra(0,&s1,&s2,&s3),

SetDatai(3,i,i/10,s1),SetDatai(4,i,i/10,s2),SetDatai(5,i,i/10,s3),

i++

}

};

main(:d,u,v,x,_eps,k,xx,g,i,s1,s2,s3:hf,Array,step,eps,數(shù)據(jù))=

{

hf=HFor("f"),? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//模塊變量hf保存函數(shù)f的句柄,預(yù)先用函數(shù)HFor獲得該句柄

數(shù)據(jù)=new[rtoi(real_s),rtoi(30),rtoi(4),rtoi(EndType),

1, 11.80, 15.37, 20.77,

2, 14.04, 17.04, 22.23,

3, 15.44, 16.85, 21.16,

4, 17.80, 18.07, 22.49,

5, 18.60, 19.43, 24.46,

6, 19.22, 20.12, 23.58,

7, 21.77, 21.83, 24.51,

8, 22.17, 22.11, 25.38,

9, 23.41, 23.37, 25.53,

10, 23.17, 24.92, 26.69,

11, 24.56, 25.55, 29.21,

12, 25.85, 26.06, 28.00,

13, 24.64, 28.94, 30.32,

14, 25.15, 28.94, 30.41,

15, 26.92, 30.06, 31.87,

16, 26.37, 29.29, 31.87,

17, 26.71, 31.48, 34.60,

18, 26.61, 31.86, 33.57,

19, 27.13, 33.84, 36.75,

20, 29.32, 32.95, 36.36,

21, 28.24, 33.03, 36.23,

22, 28.42, 32.50, 36.01,

23, 28.11, 33.12, 39.19,

24, 28.98, 35.32, 37.29,

25, 30.23, 35.56, 37.79,

26, 30.21, 34.86, 42.05,

27, 29.11, 35.40, 42.67,

28, 30.42, 36.20, 40.74,

29, 28.84, 35.91, 40.53,

30, 29.44, 36.50, 43.33

],

Array=new[rtoi(real_s),rtoi(45)],? ?? ?? ?? ?//申請工作數(shù)組

step=30,eps=1e-7,? ?? ?? ?? ?? ?? ?? ?? ?? ? //積分步數(shù)step越大,積分精度eps越小越精確,用于對微分方程組積分一步函數(shù)pbs1

x=new[rtoi(real_s),rtoi(4)],? ?? ?? ?? ?? ???//申請工作數(shù)組

xx=new[rtoi(real_s),rtoi(3),rtoi(4)],? ?? ???//申請工作數(shù)組

g=new[rtoi(real_s),rtoi(4)],? ?? ?? ?? ?? ???//申請工作數(shù)組

_eps=1e-100, d=1,u=1.6,v=0.4,k=800,? ?? ?? ???//變換d、u、v進(jìn)一步求解,k為允許的最大迭代次數(shù)

i=jsim[HFor("J"),d,u,v,x,_eps,k,xx,g],? ?? ? //求n維極值的單形調(diào)優(yōu)法

printff{"\r\n實際迭代次數(shù)={1,r}\r\n",i},? ???//輸出實際迭代次數(shù)

OutVector[x],? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//輸出最優(yōu)參數(shù)值及目標(biāo)函數(shù)終值

x.getra(0,&s1,&s2,&s3),

驗證[s1,s2,s3],

delete[x],delete[xx],delete[g],delete[Array],delete[數(shù)據(jù)] //銷毀申請的對象

};

SetData{0, //導(dǎo)入的數(shù)據(jù)保存在0號緩沖區(qū)

1, 11.80,

2, 14.04,

3, 15.44,

4, 17.80,

5, 18.60,

6, 19.22,

7, 21.77,

8, 22.17,

9, 23.41,

10, 23.17,

11, 24.56,

12, 25.85,

13, 24.64,

14, 25.15,

15, 26.92,

16, 26.37,

17, 26.71,

18, 26.61,

19, 27.13,

20, 29.32,

21, 28.24,

22, 28.42,

23, 28.11,

24, 28.98,

25, 30.23,

26, 30.21,

27, 29.11,

28, 30.42,

29, 28.84,

30, 29.44

};

_DataDot0(mod,x)=GetData(0,mod,&x); //繪制數(shù)據(jù)點

_DataLine0(x)=GetData(0,2,x); //繪制數(shù)據(jù)線

SetData{1, //導(dǎo)入的數(shù)據(jù)保存在1號緩沖區(qū)

1,??15.37,

2, 17.04,

3,??16.85,

4,??18.07,

5,??19.43,

6,??20.12,

7,??21.83,

8, 22.11,

9,??23.37,

10,??24.92,

11,??25.55,

12,??26.06,

13,??28.94,

14, 28.94,

15, 30.06,

16,??29.29,

17, 31.48,

18,??31.86,

19, 33.84,

20,??32.95,

21,??33.03,

22,??32.50,

23,??33.12,

24, 35.32,

25,??35.56,

26,??34.86,

27,??35.40,

28,??36.20,

29, 35.91,

30,??36.50

};

_DataDot1(mod,x)=GetData(1,mod,&x); //繪制數(shù)據(jù)點

_DataLine1(x)=GetData(1,2,x); //繪制數(shù)據(jù)線

SetData{2, //導(dǎo)入的數(shù)據(jù)保存在1號緩沖區(qū)

1,??20.77,

2,??22.23,

3,??21.16,

4, 22.49,

5,??24.46,

6,??23.58,

7, 24.51,

8,??25.38,

9,??25.53,

10,??26.69,

11, 29.21,

12, 28.00,

13,??30.32,

14,??30.41,

15,??31.87,

16, 31.87,

17,??34.60,

18,??33.57,

19,??36.75,

20,??36.36,

21, 36.23,

22, 36.01,

23,??39.19,

24,??37.29,

25,??37.79,

26,??42.05,

27, 42.67,

28,??40.74,

29,??40.53,

30,??43.33

};

_DataDot2(mod,x)=GetData(2,mod,&x); //繪制數(shù)據(jù)點

_DataLine2(x)=GetData(2,2,x); //繪制數(shù)據(jù)線

_DataDot3(mod,x)=GetData(3,mod,&x); //繪制理論數(shù)據(jù)點

_DataLine3(x)=GetData(3,2,x); //繪制理論數(shù)據(jù)線

_DataDot4(mod,x)=GetData(4,mod,&x); //繪制理論數(shù)據(jù)點

_DataLine4(x)=GetData(4,2,x); //繪制理論數(shù)據(jù)線

_DataDot5(mod,x)=GetData(5,mod,&x); //繪制理論數(shù)據(jù)點

_DataLine5(x)=GetData(5,2,x); //繪制理論數(shù)據(jù)線

總結(jié)

以上是生活随笔為你收集整理的微分方程在matlab中的实现,Matlab微分方程参数优化的Forcal实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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