微分方程在matlab中的實現,Matlab微分方程參數優化的Forcal實現

FCC文件

缺省設置:

(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]

// 通用設置:

// (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"};? ? //輸出一維數組

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

f(t,x,y,z,dx,dy,dz::p1,p2,p3)={ //函數定義,連分式法對微分方程組積分一步函數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)=? ? //用于計算目標函數

{

h=(t2-t1)/step,

{? ?pbs1[hf,t1,a,h,eps],??//連分式法對微分方程組積分一步函數pbs1,hf為函數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,數據)={? ? //目標函數定義

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, 數據.getrai(i,0) : 數據.getrai(i,1),??數據.getrai(i,2),??數據.getrai(i,3)],

i++

},

s

};

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

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

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

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

(i<30).while{

t_i_2[hf,Array,step,eps: &t1, 數據.getrai(i,0) : 數據.getrai(i,1),??數據.getrai(i,2),??數據.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",數據.getrai(i,0),數據.getrai(i,1),s1,數據.getrai(i,2),s2,數據.getrai(i,3),s3},

i++

},

//將理論數據保存到3、4、5號緩沖區

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,數據)=

{

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

數據=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)],? ?? ?? ?? ?//申請工作數組

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

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

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

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

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

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

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

OutVector[x],? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//輸出最優參數值及目標函數終值

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

驗證[s1,s2,s3],

delete[x],delete[xx],delete[g],delete[Array],delete[數據] //銷毀申請的對象

};

SetData{0, //導入的數據保存在0號緩沖區

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); //繪制數據點

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

SetData{1, //導入的數據保存在1號緩沖區

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); //繪制數據點

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

SetData{2, //導入的數據保存在1號緩沖區

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); //繪制數據點

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

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

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

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

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

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396925.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396925.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396925.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常用命令

1.在控制臺下關閉Java進程&#xff1a;taskkill /f /im java.exe轉載于:https://www.cnblogs.com/super90/p/5133906.html

一、在windows環境下修改pip鏡像源的方法(以python3為例)

在windows環境下修改pip鏡像源的方法(以python3為例) 1.在windows文件管理器中,輸入 %APPDATA% 2.會定位到一個新的目錄下&#xff0c;在該目錄下新建pip文件夾&#xff0c;然后到pip文件夾里面去新建個pip.ini文件 3.在新建的pip.ini文件中輸入以下內容&#xff0c;搞定 [glob…

得到選擇框句柄 怎么操作_電腦版微信怎么多開?最簡單的三種電腦版微信多開教程...

?在現實中的我們在網絡上卻又很多張臉&#xff0c;多開微信很多人都是需要的&#xff0c;這里就介紹3個方法給大家多開。方法1&#xff1a;BAT文件鼠標右鍵單擊微信圖標選擇 屬性在屬性選項夾內復制 “目標”例如我的是("D:Program Files (x86)TencentWeChatWeChat.exe&q…

php起始符大全,PHP 符號大全

注解符號:// 單行注解/* */ 多行注解引號的使用’ ’ 單引號,沒有任何意義,不經任何處理直接拿過來;" "雙引號,php動態處理然后輸出,一般用于變量.變量形態:一種是True 即 真的;另一種是False 即假的常見變量形態:string 字串(數字\漢字\等等)int…

關于tomcat內路徑跳轉的一些思考

初學jspservlet時經常碰上的幾個錯誤&#xff1a;404、路徑正確但頁面沒有任何內容、樣式和圖片丟失。這幾個錯誤曾經讓我在debug時頭大&#xff0c;現在總結一下&#xff0c;其實它們都跟路徑有關&#xff0c;正是因為沒有處理好路徑跳轉的問題&#xff0c;才引發了這一連串的…

Filter責任鏈模式

Filter責任鏈的創建 org.apache.catalina.core.ApplicationFilterFactory#createFilterChain, 此方法是被org.apache.catalina.core.StandardWrapperValve#invoke調用的, 對每個request都會創建FilterChain public static ApplicationFilterChain createFilterChain(ServletR…

python中的類裝飾器應用場景_這是我見過最全面的Python裝飾器教程了!

裝飾器(Decorators)是 Python 的一個重要部分。簡單地說:他們是修改其他函數的功能的函數。他們有助于讓我們的代碼更簡短,也更Pythonic(Python范兒)。在程序開發中經常使用到的功能&#xff0c;合理使用裝飾器&#xff0c;能讓我們的程序如虎添翼。1. 函數名應用 函數名是什么…

對于個人(注冊表)與團隊(團隊表)(兩張表沒有關聯)的展示與可空判斷

對于個人&#xff08;注冊表&#xff09;與團隊(團隊表)&#xff08;兩張表沒有關聯&#xff09;的展示與可空判斷 1&#xff0c;在Model中只有GroupId沒有名稱&#xff08;GroupName&#xff09;,所以自己定義一個&#xff1a; /// <summary>/// RegistratorMessage 界面…

macos sierra 引導鏡像_真想不到,在win10上可以制作蘋果macOS啟動U盤

不管你使用的是macOS還是Windows10&#xff0c;電腦出現啟動問題是很正常的&#xff0c;原因有很多種&#xff0c;包括(但不限于)文件損壞、硬件故障和錯誤更新等。如果意外發生在蘋果電腦上&#xff0c;可以使用帶有安裝文件的macOS啟動U盤來修復它。這正是在電腦正常工作時應…

搜索引擎使用技巧

一.基本使用 雙引號 代表完全匹配搜索&#xff0c;也就是說搜索結果返回的頁面包含雙引號中出現的所有的詞&#xff0c;連順序也必須完全匹配。bd和Google 都支持這個指令。 例如&#xff1a; “javar高性能程序開發” 減號 代表搜索不包含減號后面的詞的頁面。使用這個指令時減…

python(1) - 數據類型和變量

數據類型&#xff1a; 整數&#xff1a;就是整數&#xff0c;包括正整數&#xff0c;0&#xff0c;負整數 浮點數&#xff1a; 通俗點說&#xff0c;就是小數 長整數&#xff1a; 就是比較長的整型&#xff0c;通常后面會跟一個L 字符串&#xff1a; 字符串需要用“”或’’括起…

powershell awk_談談 PowerShell

萬事萬物&#xff0c;有始有終。直從萌芽拔&#xff0c;高自毫末始。所謂的 Shell&#xff0c;無非是應用程序與操作系統內核進行交互的一個中間程序而已。我本人玩電腦也有很久一陣子了&#xff0c;最開始接觸到的就是Windows 7 操作系統&#xff0c;當時 Windows 7 上市不久&…

設計模式之: 裝飾器模式

什么是裝飾器模式 作為一種結構型模式, 裝飾器(Decorator)模式就是對一個已有結構增加"裝飾".適配器模式, 是為現在有結構增加的是一個適配器類,.將一個類的接口&#xff0c;轉換成客戶期望的另外一個接口.適配器讓原本接口不兼容的類可以很好的合作.裝飾器模式是將一…

python七段數碼管的詳解,Python入門基礎:七段數碼管繪制

1.在學習Python的過程中&#xff0c;運用所學的一些基礎知識&#xff0c;進行一些簡單的編程&#xff0c;可以收獲很多樂趣。在生活中&#xff0c;LED燈無處不在&#xff0c;熒幕顯示的廣告詞&#xff0c;給我們呈現出動態的視覺效果。下面&#xff0c;則以最簡單的顯示日期為例…

@class

使用格式class 類名; class寫在.h文件里&#xff0c;import寫在.m文件里。這樣可以提高編譯效率 import會在導入文件發生變化時重新拷貝編譯&#xff0c;而class只會告訴使用者有這個類&#xff0c;并不會去拷貝。 場景1 使用import&#xff1a;a拷貝b&#xff0c;b拷貝c&#…

python圖標的演變_Python3 生成icon圖標

首先安裝所使用的庫 pillow&#xff0c; pillow 是用來取代 PIL 的&#xff0c; pip3 install pillow 安裝成功圖&#xff1a;A866FFD7-2283-4BFB-8313-DBDEE909A579.png 簡單的代碼&#xff1a; from __future__ import print_function import os, sys from PIL import Image …

IDEA 熱部署 僅支持jdk1.6,1.7

第一安裝 dcevm 下載地址http://ssw.jku.at/dcevm/binaries/ java -jar dcevm-0.2-win.jar &#xff0c;選擇需要安裝該補丁的jdk&#xff0c;點擊按鈕Install即可 第二&#xff1a;IDEA 在Debug模式下運行&#xff0c;這時隨便修改文件&#xff0c;自動發布到tomcat中 超級快…

php中perl配置,Windows下 Apache、PHP和Perl的安裝配置

在安裝AWStats7.0和 JAWStats之前需要配置其環境&#xff0c;而運行AWStats需要perl支持&#xff0c;運行JAWStats需要PHP支持&#xff0c;這篇文章將具體介紹其環境的安裝配置。環境Windows 2003Apache2.2Per5.12lPHP5(開源)Apache&#xff1a;http://httpd.apache.org/Perl&a…

Android常用的一些make命令(轉載)--不錯

原文網址&#xff1a;http://blog.sina.com.cn/s/blog_abc7e49a01011y0n.html 1.make -jXX XX表示數字&#xff0c;這個命令將編譯Android系統并生成鏡像&#xff0c;XX表示可以使用到的CPU核數&#xff0c;這在配置好的電腦上特別有用&#xff0c;公司的16核ubuntu服務器執行…

arraylist 初始化_ArrayList(JDK1.8)源碼解析

既然是看源碼&#xff0c;那我們要怎么看一個類的源碼呢&#xff1f;這里我推薦的方法是&#xff1a;1)看繼承結構看這個類的層次結構&#xff0c;處于一個什么位置&#xff0c;可以在自己心里有個大概的了解。2)看構造方法在構造方法中&#xff0c;看做了哪些事情&#xff0c;…