国产性生交xxxxx免费-国产中文字幕-啊灬啊灬啊灬快灬高潮了,亚洲国产午夜精品理论片在线播放 ,亚洲欧洲日本无在线码,色爽交视频免费观看

鍋爐信息網 > 鍋爐知識 > 鍋爐資訊

1stOpt 新特性

發布時間:

當前時間:2020年10月18日1stOpt9.0 新特性七維高科公司今天發布了1stOpt9.0版本新特性,軟件得12月1日才能升級。簡單說一下更新內容

當前時間:2020年10月18日

1stOpt9.0 新特性

七維高科公司今天發布了1stOpt9.0版本新特性,軟件得12月1日才能升級。簡單說一下更新內容。

  • 1. 多層自回歸網絡工具箱升級

增加了“多模”模型結構,對擬合及分類在效果方面有大幅提高,尤其對低維數據,同時支持單一輸入。

自己沒用這個解決過實際問題,沒啥發言權,就不亂說了。

但所有工具箱幾乎都用到1stOpt電子表格,就說說電子表格吧。以前用神經網絡工具箱算過大的數據集,感覺1stOpt電子表格行數太多了比較卡。比如用傳感器收集振動碾振動加速度,采樣頻率10000Hz,那就是每秒采集10000個數,采集半小時就是18000000個數,8個傳感器就是18000000*8個數據,這還只是自變量,可想數據量有多大。用matlab自帶的神經網絡工具箱,這個數據量放在8個mat里還是沒問題的,也還能算,比較慢就是了。但把這些數據一股腦放入1stOpt8.0的電子表格里是不行的,會直接卡死的。1stOpt9.0版本可以直接讀入matlab的mat數據文檔

這方面應該是做了優化吧。當今,不少問題都和大數據沾些邊,所以如果這方面有改進,那就太實用了。

  • 2.增加了線性 、 多項式及完全多項式擬合計算功能

用matlab2016b的擬合工具箱可以發現,其對于多項式擬合速度非常快,數據量很大時依然如此(缺點是自定義函數只能有三個自變量)。1stOpt可以很方便的自定義任意多自變量的函數,非線性擬合功能也很強,但對于大數據量的線性或多項式擬合速度較慢,有時效果也不太好(我以前試過大數據量的傅里葉級數擬合,非線性也較慢,其實只要大數據量問題都不會很快)。9.0版本對于線性、多項式及完全多項式這塊增加了新的函數用以應對大數據量(主要自變量多)的問題:

  • 3. 對于某些非線性問題 參數賦予為 初值為 0 時 時 效率大 幅 提高

8.0版本把默認參數調大些,也能算的不錯,但也不能保證百分之百能算好,肯定比9.0還慢些:

8.0版沒算好
8.0版算好了


  • 4. 目標函數可以選擇

擬合 時目標函數 可 選擇最小二乘( 實際 輸出值及對應計算值差值平方和最小)或數 確定系數 DC( (應 對應 WeightedReg = 3 命令為 ,也即權重系數為 w =Variance^2) ) , 對于多數據多輸出且 輸出 值數量級相差 很大時,選擇后者可兼顧整體,效果更好

其實就是吧目標函數的最小二乘歸一化了(以 sum(((y-y')/y')^2) 為目標函數)。這個關鍵字8.0版本就有了啊,但不知道8.0為什么不好使。

  • 5. 輸出結果多頁面保存,多頁面預測

另外,計算的結果數據和圖片可以同時保存:

在8.0版本中計算結果的圖片得一個一個手動保存。

這些功能超級實用,點贊,再也不用一個一個的來保存了!

  • 6. 調用的 外部高級語言編寫的 dll 目標函數時支持 循環 常數(LoopConstan) ) 傳遞 ,同時也支持數據直接從代碼本傳入目標函數動態庫

如果需要循環計算但目標函數太復雜,想用dll計算目標函數,在8.0企業版本就搞不定了,因為不知道當前循環到哪些常數了。當然8.0的開發版肯定可以,方法是用matlab或別的什么語言調用開發版或其api就行,循環常數在matlab或其他語言中進行,8.0的1stOpt就是個優化器,多次調用就是了。9.0可以將循環常數和Data數據傳入dll中,對于有些問題也不用fortran讀入文本文檔了(我還寫了一篇文章如何用dll計算時提高計算效率:https://zhuanlan.zhihu.com/p/264988656)

龍biscuit:1stopt調用fortran90的dll時只讀入一次文本進而加快計算速度

很多需要使用dll的批量優化問題在9.0版本中很容易就可以解決了:

  • 7. 還有幾個比較好的改進

比如第10個常數和常字符串可以累加定義,在變量比較少時很容易不累加,但在變量比較多時,一個不留神就用了前面定義過的常數或常字符串了。這在解大方程組或復雜問題時非常實用。

  • 8.對于保留結果的關鍵字也添加了一些

之前也有一些控制計算的關鍵字,但并不全面,這次集中增加了控制輸出結果的關鍵字,有了這些關鍵字,再也不用在界面中設置了,還是代碼省事,寫一次到處粘貼就行了。

當然還有其它一些命令:

不知道MultiSolution是不是應對的多解問題。比如有些問題,帕累托解不止一個,有了這個命令,可能就能輸出多個最優解了。



  • 9. 編程模式代碼支持fortran語言

現在使用fortran作科學計算的還不少,對fortran也比較熟悉。但在1stOpt9.0中使用fortran需要另外安裝GFortran編譯器就不太方便了。比如abaqus和ivf(intel 的fortran編譯器)是有版本匹配的,安裝GFortran時會更新掉ivf的一些東西,導致ABAQUS無法使用ivf二次開發本構模型。所以這個使用略顯復雜,還是Basic和Pacsl簡單實用些。當然,如果1stopt以后像自帶Basic一樣自帶fortran編譯器了,fortran應該是我的首選。

另外,8.0就已經支持python了,但感覺例子少,支持的也不好(軟件老卡死),不知道是否有改進。

2021年3月16日:拿到9.0版之后發現,這個GFortran很小,安裝和使用也很方便,不用自己找網上的安裝,七維高科會提供。安裝后并不影響其他軟件,很棒!


  • 10. 增加了編程模式下的調試功能

這個在使用編程模式比如basic或fortran時應該超級實用。“人非圣賢,孰能無過”呢,寫錯了代碼要是能debug調試,那就不怕了。

之前由fortran轉matlab,有很大原因是感覺每個變量都可以在工作空間清晰明了的看到其值,要是1stOpt的debug模式時能看到各變量實時的值,那就太方便了。

快捷代碼模式不能debug也很正常,因為就不是一句一句運行的。所以,現在這種錯誤了提示行數的提醒方式也還行。

11.可以include了

之前就想,python能不能導入外部的包,沒想到是編程模式可以include了。這個功能猜測應該是函數寫在代碼本太多,所以可以單獨寫到一個文檔中,然后在編程模式下 “包含”進來,其實完成的是 復制代碼到此處 的功能。

  • 12.算法的更新及其他bug修復



總結:

1.此次更新,添加了很多實用的功能,還是很值得期待的!

2.我比較喜歡 向dll中傳數組和循環常數數據的功能(以前只能傳參數)、多頁面多結果保存功能、常數及常字符串可以累加定義的功能、debug功能 以及關鍵字控制計算和輸出功能。 當然,優化方法的改進才是最見功力的地方,只是在使用時這幾個改進時應該感受最明顯。

3.期望:

3.1 在人工智能、大數據的比較火的現在,希望1stOpt這方面也能獨樹一幟。最起碼目前的表格使用方式就很方便,但表格容納數據量不大,希望擴充表格容納數據的能力。

3.2 說明書或提示能寫詳細點。有不少軟件中,鼠標移動到相應按鈕處就有提示,或選中代碼中某關鍵字處,按f1鍵就能打開幫助文檔。其實1stOpt有很多功能很棒,只是沒有詳細介紹導致大家并不太會用。比如什么算法什么時候用(UGO算法中尋優模式好幾種,每種適用于什么),有些不常見的函數(比如SMin3:SMin3(a,b,x)的結果不是a就是b,關鍵在于abs(a-x)與abs(b-x)的大小,若abs(a-x)<abs(b-x),則結果為a,若abs(a-x)>abs(b-x),則結果為b。琢磨了好大會兒才明白)也沒有交代什么功能。

3.3 以前flac3d3.0版本就只有4M大小(2002年),但在巖土圈也是威名赫赫,現在flac3d7.0也有上G大小了,和其余軟件的數據格式交互、自身的圖形界面交互、以及多核運行效率都提高了很多。希望1stOpt也能在自己的路上早日壯大。

3.4 其他小建議(在使用中隨時間更新):

3.4.1 計算完有個聲音提示就好了。2021年3月16日

3.4.2 默認計算結果頁面沒有添加圖例,默認不是點線圖。不知道這些在ini配置文檔中能不能設定。2021年3月16日

3.4.3 不知道能不能加上多目標優化,現在1stOpt都是單目標優化。2021年3月16日

3.4.4 1stopt計算時長統計在跨過24:00時就錯了。2021年5月1日

3.4.5 僅在1stOpt數據電子表格有簡單的線性插值,沒有matlab中interp1或復雜的插值函數。也沒有光滑數據的函數。2021年5月1日


2022年12月7日21:28:23 做了視頻,詳細琢磨了一下9.0的新功能,與大家分享:

1stOpt 9.0 新特性詳細介紹https://www.zhihu.com/video/1583935900261773312

具體代碼:

NewCodeBlock"1stOpt 9.0 New";nnNewCodeBlock"1 多層自回歸網絡工具箱功能提升";nnNewCodeBlock"2 增加了線性、多項式及完全多現實擬合計算功能";nNewCodeBlock"2.1 線性擬合";nVariable x1,x2,y;nFunction y=LineFit(x1,x2);nData;nx1=[23.73,24.31,25.16,26.34,28.05,30.47,33.94,39.27,42.4,47.15,51.35,54.1,55.22];nx2=[-3.329,-4.159,-5.153,-6.63,-8.462,-10.59,-12.83,-14.84,-15.31,-15.09,-13.46,-10.82,-7.7];ny=[21.23,14.36,9.766,6.643,4.542,3.09,2.105,1.434,0.9766,0.6643,0.4542,0.309,0.2105];nNewCodeBlock"2.2 多項式擬合";nVariable x1,x2,y;nFunction y=PolyFit(x1,x2,2);nData;nx1=[23.73,24.31,25.16,26.34,28.05,30.47,33.94,39.27,42.4,47.15,51.35,54.1,55.22];nx2=[-3.329,-4.159,-5.153,-6.63,-8.462,-10.59,-12.83,-14.84,-15.31,-15.09,-13.46,-10.82,-7.7];ny=[21.23,14.36,9.766,6.643,4.542,3.09,2.105,1.434,0.9766,0.6643,0.4542,0.309,0.2105];n NewCodeBlock"2.3 完全多項式擬合";nVariable x1,x2,y;nFunction y=PolyFit2(x1,x2,2);nData;nx1=[23.73,24.31,25.16,26.34,28.05,30.47,33.94,39.27,42.4,47.15,51.35,54.1,55.22];nx2=[-3.329,-4.159,-5.153,-6.63,-8.462,-10.59,-12.83,-14.84,-15.31,-15.09,-13.46,-10.82,-7.7];ny=[21.23,14.36,9.766,6.643,4.542,3.09,2.105,1.434,0.9766,0.6643,0.4542,0.309,0.2105];nnNewCodeBlock"3 參數賦予初值為 0 時效率大幅提高";n Constant k=1.38*10^(-23);nParameter ea=0;nVariable f,tm;nFunction f=f0*exp(-Ea/(k*(Tm-Tf)));nData;nf Tm (K)n0.1 251.52n0.5 257.31n1 260.93n5 266.99n10 270.07nnNewCodeBlock"4 誤差(目標)函數種類的選擇";nWeightedReg = 3;nVariable T,y1,y2;nODEFunctionny1' = k0;ny2' = k1*y1*y2;nData;nT = [0 2 4 6 8 10 12];ny1=[307.18 394.39 441.93 516.62 565.13 636.74 653.68];ny2 = [21.06666667 15.4 9.633333333 4.666666667 0.753333333 0.403333333 0.206666667];nnNewCodeBlock"5 輸出結果多頁面保存,多頁面預測";nnNewCodeBlock"6 調用外部高級語言編寫的 dll 目標函數時支持循環常數(LoopConstan)傳遞,同時也支持數據直接從代碼本傳入目標函數動態庫";nNewCodeBlock"6.1 快捷代碼";nConstant n=10;nLoopConstant a=[1,2,3], b=[0.3,0.2,0.1];nFullLoopModel;nParameter x(0:n-1)=[-5,10];nMinFunction Sum(i=0:n-2)(a*100.0*(x[i]^2.0-x[i+1])^2.0+b*(x[i]+sin(x[i+1])-1.0)^2.0);nNewCodeBlock"6.2 調用外部高級語言編寫的 dll 目標函數時支持循環常數(LoopConstan)傳遞"nConstant n=10;nLoopConstant a=[1,2,3], b=[0.3,0.2,0.1];nFullLoopModel;nRunDLLModel = 1;nParameter x(0:n-1)=[-5,10];nMinFunction "G:Program Files (x86)1stOpt 9.0WorkPath1stOpt 9.0 Newtest2.dll";nnNewCodeBlock"7 支持連續定義約束: SubjectTo x1>x2>x3>x4;";nNewCodeBlock"7.1 方程約束";nParameterDomain = [0,90];nFunctionncosd(5*a)+cosd(5*b)+cosd(5*c)+cosd(5*d)+cosd(5*e)+cosd(5*f)=0;ncosd(7*a)+cosd(7*b)+cosd(7*c)+cosd(7*d)+cosd(7*e)+cosd(7*f)=0;ncosd(11*a)+cosd(11*b)+cosd(11*c)+cosd(11*d)+cosd(11*e)+cosd(11*f)=0;ncosd(13*a)+cosd(13*b)+cosd(13*c)+cosd(13*d)+cosd(13*e)+cosd(13*f)=0;ncosd(17*a)+cosd(17*b)+cosd(17*c)+cosd(17*d)+cosd(17*e)+cosd(17*f)=0;ncosd(19*a)+cosd(19*b)+cosd(19*c)+cosd(19*d)+cosd(19*e)+cosd(19*f)=0;n0 <a < b < c < d < e < f < 90;nNewCodeBlock"7.2 條件約束";nParameterDomain = [0,90];nSubjectTo 0 <a < b < c < d < e < f < 90;nFunctionncosd(5*a)+cosd(5*b)+cosd(5*c)+cosd(5*d)+cosd(5*e)+cosd(5*f)=0;ncosd(7*a)+cosd(7*b)+cosd(7*c)+cosd(7*d)+cosd(7*e)+cosd(7*f)=0;ncosd(11*a)+cosd(11*b)+cosd(11*c)+cosd(11*d)+cosd(11*e)+cosd(11*f)=0;ncosd(13*a)+cosd(13*b)+cosd(13*c)+cosd(13*d)+cosd(13*e)+cosd(13*f)=0;ncosd(17*a)+cosd(17*b)+cosd(17*c)+cosd(17*d)+cosd(17*e)+cosd(17*f)=0;ncosd(19*a)+cosd(19*b)+cosd(19*c)+cosd(19*d)+cosd(19*e)+cosd(19*f)=0;nNewCodeBlock"7.3 循環形式寫方程";nParameterDomain = [0,90];nConstant v=[5,7,11,13,17,19];nFunction For(i=1:6,v)(cosd(v*a)+cosd(v*b)+cosd(v*c)+cosd(v*d)+cosd(v*e)+cosd(v*f)=0);n0 < a < b < c < d < e < f < 90;nNewCodeBlock"7.4 循環形式寫方程和約束";nParameterDomain = [0,90];nConstant v=[5,7,11,13,17,19];nFunction For(i=1:6,v)(Sum(i=1:6,p)(cosd(v*p))=0);nFor(i=0:6)(if(i=0,0<p[1],if(i=6, p[i]<90, p[i]<p[i+1])));nnNewCodeBlock"8 重復定義參數,服從后者";nParameter p1=[,1],p1=[0,], p2=[1,2];nMaxFunction p1+p2;nnNewCodeBlock"9 連續定義參數";nParameter -0.5<A3<0, 0<t1<t2<10, -0.5<A1<A2<0;nMaxFunction a1+a2+a3+t1+t2;nnNewCodeBlock"10 常數及常字符串可以累加定義";nNewCodeBlock"10.1 9.0之前";nConstant b=3, a=1+b+3;//每個變量只能定義一次nConstStr f=2*d +3nnNewCodeBlock"10.2 9.0版本及之后版本";nConstant a=1, b=3, a=a+b+3;//每個變量都可以定義多次nConstStr f=2*d, f=f+3;nnNewCodeBlock"11 增加迭代計算自動保存命令";nTitle "NLReg Demo - 1";nnObjAppendIteration=1;//每隔1代保存一次目標函數nObjAppendSave ="1.1 objWithIter.csv";//在當前目錄下保存目標函數隨迭代代數變化過程nnParAppendIteration=1;//每隔1代保存一次參數nParAppendSave="1.2 paraWithIter.csv";//在當前目錄下保存參數隨迭代代數變化過程nnSaveResultFile="2.1 BestResult.csv";//保存最終計算結果nSaveParameterFile="2.2 BestPara.csv"//保存最終計算最佳參數值nnParameter b1, b2, b3, b4;nVariable x, y;nFunction y=exp(b1*x)+exp(b2*x)+b3*sin(b4*x);nData;n//xtyn2t4n2.1t4.1n2.2t4.3n2.3t4.5n2.4t4.6n2.5t4.8n2.6t5.0n2.7t5.1n2.8t5.3n2.9t5.5nnNewCodeBlock"12 直接支持 Fortran 語言";nNewCodeBlock"12.1 快捷模式代碼";nConstant n =5;nParameter x(n);nMinFunction Sum(i=1:n-1)(x[i]^2+x[i+1]*sin(10*pi*x[i]*x[i+1])+2+(x[i]+x[i+1])^2);nNewCodeBlock"12.2 編程模式(Basic)代碼";nConstant n=5;nParameter x(n);nStartProgram [Basic];nSub MainModelndim i as integerndim td1 as doublentd1 = 0nfor i = 1 to n - 1ntd1 = td1 + x(i)^2+x(i+1)*sin(10*pi*x(i)*x(i+1))+2+(x(i)+x(i+1))^2nnextnObjectiveResult = td1nEnd SubnEndProgram;nNewCodeBlock"12.3 編程模式(Fortran)代碼";nConstant n=5;nParameter x(n);nConstStr pi=dacos(-1.D0);nStartProgram [Fortran];nSubroutine MainModelninteger inreal*8 td1ntd1 = 0.0ndo i = 1, n - 1n td1 = td1 + x(i)^2.0+x(i+1)*sin(10.0*pi*x(i)*x(i+1))+2.0+(x(i)+x(i+1))^2.0nend donObjectiveResult = td1nEnd SubroutinenEndProgram;nnNewCodeBlock"編程模式(Pacsl)代碼";nConstant n=5;nParameter x(n);nStartProgram [Pascal];nProcedure MainModel;nvar i: integer;ntd1: double;nBeginntd1 := 0;nfor i := 1 to n - 1 dontd1 := td1 + sqr(x[i])+x[i+1]*sin(10.0*pi*x[i]*x[i+1])+2.0+sqr(x[i]+x[i+1]);nObjectiveResult := td1;nEnd;nEndProgram;nnNewCodeBlock"13 支持 Matlab 數據文件(.mat)輸入及導出";n//在 1stOpt 內置電子表格里可以打開和保存 Matlab 數據文件(.mat)nnNewCodeBlock"14 TolIteration 命令";nTitle "NLReg Demo - 1";nnObjAppendIteration=1;//每隔1代保存一次目標函數nObjAppendSave ="1.1 objWithIter.csv";//在當前目錄下保存目標函數隨迭代代數變化過程nnParAppendIteration=1;//每隔1代保存一次參數nParAppendSave="1.2 paraWithIter.csv";//在當前目錄下保存參數隨迭代代數變化過程nnSaveResultFile="2.1 BestResult.csv";//保存最終計算結果nSaveParameterFile="2.2 BestPara.csv";//保存最終計算最佳參數值nnTolIteration=100;//控制判斷迭代收斂次數nnParameter b1, b2, b3, b4;nVariable x, y;nFunction y=exp(b1*x)+exp(b2*x)+b3*sin(b4*x);nData;n//xtyn2t4n2.1t4.1n2.2t4.3n2.3t4.5n2.4t4.6n2.5t4.8n2.6t5.0n2.7t5.1n2.8t5.3n2.9t5.5nnNewCodeBlock"15 輸出多解參數值“MultiSolution”命令";nTitle "NLReg Demo - 1";nnObjAppendIteration=1;//每隔1代保存一次目標函數nObjAppendSave ="1.1 objWithIter.csv";//在當前目錄下保存目標函數隨迭代代數變化過程nnParAppendIteration=1;//每隔1代保存一次參數nParAppendSave="1.2 paraWithIter.csv";//在當前目錄下保存參數隨迭代代數變化過程nnSaveResultFile="2.1 BestResult.csv";//保存最終計算結果nSaveParameterFile="2.2 BestPara.csv";//保存最終計算最佳參數值nnTolIteration=100;//控制判斷迭代收斂次數nnMultiSolution=true;//同時輸出多解nnParameter b1, b2, b3, b4;nVariable x, y;nFunction y=exp(b1*x)+exp(b2*x)+b3*sin(b4*x);nData;n//xtyn2t4n2.1t4.1n2.2t4.3n2.3t4.5n2.4t4.6n2.5t4.8n2.6t5.0n2.7t5.1n2.8t5.3n2.9t5.5nnNewCodeBlock"16 編程模式下新增“DebugModel”命令";nNewCodeBlock"16.1 Basic !!!卡死";nDebugModel=ture;nConstant n=5;nParameter x(n);nStartProgram [Basic];nSub MainModelndim i as integerndim td1 as doublentd1 = 0nfor i = 1 to n - 1ntd1 = td1 + x(i)^2+x(i+1)*sin(10*pi*x(i)*x(i+1))+2+(x(i)+x(i+1))^2nnextnObjectiveResult = td1nEnd SubnEndProgram;nNewCodeBlock"16.2 Fortran";n//DebugModel=ture;//能給出錯誤原因,如果代碼正確給出編譯成功的的提示,并不會開始計算nConstant n=5;nParameter x(n);nConstStr pi=dacos(-1.D0);nStartProgram [Fortran];nSubroutine MainModelninteger inreal*8 td1ntd1 = 0.0ndo i = 1, n - 1n td1 = td1 + x(i)^2.0+x(i+1)*sin(10.0*pi*x(i)*x(i+1))+2.0+(x(i)+x(i+1))^2.0nend donObjectiveResult = td1nEnd SubroutinenEndProgram;nNewCodeBlock"17 “IncludeFile”,編程模式下增加外部代碼單元,編程模式下可通該命令調用相關代碼單元。";nNewCodeBlock "17.1 NNFit in Fortran Model (2-3-1) 無IncludeFile";n//DebugModel=ture;//能給出錯誤原因,如果代碼正確給出編譯成功的的提示,并不會開始計算n//NNFit(NS=[2-3-1], TF=[1,1], DN=[1,1], NC=1, CT=2, Code=3);nAlgorithm = UGO1[30];nConstantn RMin = -1.0, RMax = 1.0, //輸入數據歸一化上下限值n SMin = 0.1, SMax = 0.9, //輸出數據歸一化上下限值n Minx1 = 0.0, Maxx1 = 1.0, //最小最大值 (變量 x1)n Minx2 = 0.0, Maxx2 = 1.0, //最小最大值 (變量 x2)n Miny = 0.0, Maxy = 1.0; //最小最大值 (變量 y)nParameter p(13);nVariable x1, x2, y[OutPut];nStartProgram [Fortran];n Function TFH(v) !Sigmoid (隱含層轉換函數)n real*8 vn TFH = 1/(1+exp(-v))n end functionnn Function TFO(v) !Sigmoid (輸出層轉換函數)n real*8 vn TFO = 1/(1+exp(-v))n end functionnnSubroutine MainModeln integer in real*8 xx1, xx2, s11, h11, s12, h12, s13, h13, s21, h21nn do i = 0, DataLength - 1n xx1 = RMin+(RMax-RMin)*(x1(i)-Minx1)/(Maxx1-Minx1) !輸入數據歸一化至 [-1,1]n xx2 = RMin+(RMax-RMin)*(x2(i)-Minx2)/(Maxx2-Minx2) !輸入數據歸一化至 [-1,1]n s11 = p1*xx1+p4*xx2+p10 !輸入至節點-1 (隱含層-1)n h11 = TFH(s11) !節點輸出 (節點-1, 隱含層-1)n s12 = p2*xx1+p5*xx2+p11 !輸入至節點-2 (隱含層-1)n h12 = TFH(s12) !節點輸出 (節點-2, 隱含層-1)n s13 = p3*xx1+p6*xx2+p12 !輸入至節點-3 (隱含層-1)n h13 = TFH(s13) !節點輸出 (節點-3, 隱含層-1)n s21 = p7*h11+p8*h12+p9*h13+p13 !輸入至節點-1 (輸出層)n h21 = TFO(s21) !節點輸出 (節點-1, 輸出層)nn y(i) = Miny+(h21-SMin)*(Maxy-Miny)/(SMax-SMin) !輸出數據還原yn end donnEnd SubroutinenEndProgram;nData; //訓練數據nx1 = [1,1,0,0];nx2 = [1,0,1,0];ny = [1,0,0,0];nnNewCodeBlock "17.2 NNFit in Fortran Model (2-3-1) IncludeFile";n//DebugModel=ture;//能給出錯誤原因,如果代碼正確給出編譯成功的的提示,并不會開始計算n//NNFit(NS=[2-3-1], TF=[1,1], DN=[1,1], NC=1, CT=2, Code=3);nIncludeFile="G:Program Files (x86)1stOpt 9.0WorkPath1stOpt 9.0 NewsubFunc.f90";nAlgorithm = UGO1[30];nConstantn RMin = -1.0, RMax = 1.0, //輸入數據歸一化上下限值n SMin = 0.1, SMax = 0.9, //輸出數據歸一化上下限值n Minx1 = 0.0, Maxx1 = 1.0, //最小最大值 (變量 x1)n Minx2 = 0.0, Maxx2 = 1.0, //最小最大值 (變量 x2)n Miny = 0.0, Maxy = 1.0; //最小最大值 (變量 y)nParameter p(13);nVariable x1, x2, y[OutPut];nStartProgram [Fortran];n// Function TFH(v) !Sigmoid (隱含層轉換函數)n// real*8 vn// TFH = 1/(1+exp(-v))n// end functionnn// Function TFO(v) !Sigmoid (輸出層轉換函數)n// real*8 vn// TFO = 1/(1+exp(-v))n// end functionnnSubroutine MainModeln integer in real*8 xx1, xx2, s11, h11, s12, h12, s13, h13, s21, h21nn do i = 0, DataLength - 1n xx1 = RMin+(RMax-RMin)*(x1(i)-Minx1)/(Maxx1-Minx1) !輸入數據歸一化至 [-1,1]n xx2 = RMin+(RMax-RMin)*(x2(i)-Minx2)/(Maxx2-Minx2) !輸入數據歸一化至 [-1,1]n s11 = p1*xx1+p4*xx2+p10 !輸入至節點-1 (隱含層-1)n h11 = TFH(s11) !節點輸出 (節點-1, 隱含層-1)n s12 = p2*xx1+p5*xx2+p11 !輸入至節點-2 (隱含層-1)n h12 = TFH(s12) !節點輸出 (節點-2, 隱含層-1)n s13 = p3*xx1+p6*xx2+p12 !輸入至節點-3 (隱含層-1)n h13 = TFH(s13) !節點輸出 (節點-3, 隱含層-1)n s21 = p7*h11+p8*h12+p9*h13+p13 !輸入至節點-1 (輸出層)n h21 = TFO(s21) !節點輸出 (節點-1, 輸出層)nn y(i) = Miny+(h21-SMin)*(Maxy-Miny)/(SMax-SMin) !輸出數據還原yn end donnEnd SubroutinenEndProgram;nData; //訓練數據nx1 = [1,1,0,0];nx2 = [1,0,1,0];ny = [1,0,0,0];nnNewCodeBlock"18 圖形指標格式設定";nConstant Z=0.934,lamda=0.135,kappa=0.04,ps=2199;n//XAxis = Ln(p);可將橫坐標設置為對數坐標。n//YAxis = Ln(OutPut);可將縱坐標設置為對數坐標。nParameter chi;nVariable p,e;nFunction e=Z-lamda*ln((p+ps)/(1+ps))-(lamda-kappa)*ln(((2/(1-chi))*p+ps)/(p+ps)) ;ndata;//p en33.7641083 0.9264706n50.0249879 0.9215686n76.9447268 0.9225490n86.0913166 0.9176471n94.5387283 0.9156863n109.8121530 0.9127451n132.4192792 0.9117647n159.6805547 0.9137255n178.6621354 0.9029412n188.9830110 0.9107843n203.6775158 0.8980392n236.5831118 0.9029412n245.6087882 0.8980392n290.6796537 0.8892157n357.1457846 0.8921569n363.8945990 0.8852941n447.1018883 0.8794118n447.1018883 0.8725490n603.2367686 0.8705882n603.2367686 0.8588235n674.9448574 0.8627451n727.4256619 0.8568627n844.9466108 0.8578431n893.7571151 0.8441176n1038.1501298 0.8450980n1038.1501298 0.8313725n1183.5067295 0.8352941n1228.6576649 0.8294118n1349.2154348 0.8235294n1374.7109188 0.8186275n1538.1258460 0.8147059n1596.8055467 0.8078431n1889.8301103 0.7911765n2195.1460202 0.7705882n2321.9542503 0.7676471n2321.9542503 0.7588235n2697.0829833 0.7490196n2697.0829833 0.7362745n3074.7150813 0.7294118n3132.8165135 0.7235294nnNewCodeBlock"字符串公式 6.0版本新增";nConstStrnf(v,w)=v+w;nConstant v=1,w=40;nf(v,w) //


下面是存在百度網盤中的附件:

鏈接:https://pan.baidu.com/s/1tEwPF3yT-t5z3jLdYlhxTQ?pwd=whg6

提取碼:whg6

百度網盤分享內容

當前時間:2022年12月14日22:17:28

1stOpt 10.0 新特性:

1stOpt 10.0新特性https://www.zhihu.com/video/1586484876475265025

NewCodeBlock"1stOpt 10.0 主要新增功能";nnNewCodeBlock"1 神經網絡擬合工具箱及相關命令";nNewCodeBlock "1.1 5-bit parity - NNFit in Quick Model (5-3-1)";nFunction NNFit(NS=[5-3-1], TF=[1,4], DN=[1,1], NC=2, CT=1, Code=1, Importance);n//Neural Network : NNFitn// network structure: NS=[5-3-1]:3層,每層分別有5/3/1個結點,第一層是輸入層(自變量),最后一層為輸出層(因變量),中間是隱藏層n// Transfer function :TF=[1,4] ,1代表隱藏層為第1種激活函數即Sigmoid 函數,4代表輸出層神經元采用的第4種激活函數即Linear函數。TF長度隨隱藏層層數變化n// Data normalization :DN=[1,1],1表示歸一化,0表示不歸一化。第1個1表示輸入層歸一化,第2個1表示輸出層歸一化。n// Network Connection Type: NC=2,1表示多層向前,2表示多層全向前n// code type:CT=1 ,1表示Quick Model,2表示Fortran,3表示Pascal,4表示Basic,5表示Pythonn// 代碼形式:Code=1 ,1表示精簡,2代表精簡(表達式),3代表完全n//Importance 代表進行 輸入變量重要性分析nData; //訓練數據nx1 = [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1];nx2 = [0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1];nx3 = [0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1];nx4 = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1];nx5 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];ny = [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];nnNewCodeBlock "1.2 iris - NNFit in Pascal Model (4-2-1)";nDataFileWeight = [1,0];nFunction NNFit(NS=[4-2-1], TF=[1,1], DN=[1,1], NC=1, CT=3, Code=1);nData; //訓練數據nx1 = [4.7,4.6,5.0,5.4,4.6,4.4,5.4,4.8,4.3,5.8,5.7,5.4,5.1,5.1,5.4,5.1,4.8,5.0,5.2,5.2,4.7,4.8,5.2,5.5,5.1,4.5,4.4,5.0,5.1,4.8,5.1,4.6,5.3,5.0,6.4,6.9,6.5,5.7,6.3,6.6,5.2,5.0,5.9,6.0,6.1,5.6,5.8,6.2,5.9,6.1,6.3,6.1,6.6,6.8,6.7,6.0,5.7,5.5,5.5,5.8,6.0,5.6,5.5,5.5,6.1,5.8,5.6,5.7,5.1,5.7,6.3,5.8,7.1,6.3,7.6,4.9,7.3,6.7,6.5,6.4,6.8,5.8,6.5,7.7,7.7,6.9,5.6,6.3,6.1,7.2,7.4,7.9,6.3,7.7,6.4,6.0,6.9,6.7,5.8,6.8,6.7,6.7,6.3,6.5,6.2];nx2 = [3.2,3.1,3.6,3.9,3.4,2.9,3.7,3.0,3.0,4.0,4.4,3.9,3.5,3.8,3.4,3.7,3.4,3.4,3.5,3.4,3.2,3.1,4.1,3.5,3.4,2.3,3.2,3.5,3.8,3.0,3.8,3.2,3.7,3.3,3.2,3.1,2.8,2.8,3.3,2.9,2.7,2.0,3.0,2.2,2.9,3.0,2.7,2.2,3.2,2.8,2.5,2.8,3.0,2.8,3.0,2.9,2.6,2.4,2.4,2.7,3.4,3.0,2.5,2.6,3.0,2.6,2.7,2.9,2.5,2.8,3.3,2.7,3.0,2.9,3.0,2.5,2.9,2.5,3.2,2.7,3.0,2.8,3.0,3.8,2.6,3.2,2.8,2.7,3.0,3.0,2.8,3.8,2.8,3.0,3.1,3.0,3.1,3.1,2.7,3.2,3.3,3.0,2.5,3.0,3.4];nx3 = [1.3,1.5,1.4,1.7,1.4,1.4,1.5,1.4,1.1,1.2,1.5,1.3,1.4,1.5,1.7,1.5,1.9,1.6,1.5,1.4,1.6,1.6,1.5,1.3,1.5,1.3,1.3,1.6,1.9,1.4,1.6,1.4,1.5,1.4,4.5,4.9,4.6,4.5,4.7,4.6,3.9,3.5,4.2,4.0,4.7,4.5,4.1,4.5,4.8,4.0,4.9,4.7,4.4,4.8,5.0,4.5,3.5,3.8,3.7,3.9,4.5,4.1,4.0,4.4,4.6,4.0,4.2,4.2,3.0,4.1,6.0,5.1,5.9,5.6,6.6,4.5,6.3,5.8,5.1,5.3,5.5,5.1,5.5,6.7,6.9,5.7,4.9,4.9,4.9,5.8,6.1,6.4,5.1,6.1,5.5,4.8,5.4,5.6,5.1,5.9,5.7,5.2,5.0,5.2,5.4];nx4 = [0.2,0.2,0.2,0.4,0.3,0.2,0.2,0.1,0.1,0.2,0.4,0.4,0.3,0.3,0.2,0.4,0.2,0.4,0.2,0.2,0.2,0.2,0.1,0.2,0.2,0.3,0.2,0.6,0.4,0.3,0.2,0.2,0.2,0.2,1.5,1.5,1.5,1.3,1.6,1.3,1.4,1.0,1.5,1.0,1.4,1.5,1.0,1.5,1.8,1.3,1.5,1.2,1.4,1.4,1.7,1.5,1.0,1.1,1.0,1.2,1.6,1.3,1.3,1.2,1.4,1.2,1.3,1.3,1.1,1.3,2.5,1.9,2.1,1.8,2.1,1.7,1.8,1.8,2.0,1.9,2.1,2.4,1.8,2.2,2.3,2.3,2.0,1.8,1.8,1.6,1.9,2.0,1.5,2.3,1.8,1.8,2.1,2.4,1.9,2.3,2.5,2.3,1.9,2.0,2.3];ny = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3];nData; //驗證數據;預測正確,但繪圖不正確nx1 = [4.7,4.6,5.0,5.4,4.6,4.4,5.4,4.8,4.3];nx2 = [3.2,3.1,3.6,3.9,3.4,2.9,3.7,3.0,3.0];nx3 = [1.3,1.5,1.4,1.7,1.4,1.4,1.5,1.4,1.1];nx4 = [0.2,0.2,0.2,0.4,0.3,0.2,0.2,0.1,0.1];ny = [1,1,1,1,1,1,1,1,1];nnNewCodeBlock "xor - NNFit in Quick Model (2-1-1)";nFunction NNFit(NS=[2-1-1], TF=[1,4], DN=[0,0], NC=2, CT=1, Code=1);nData; //訓練數據nx1 = [0,0,1,1];nx2 = [0,1,0,1];ny = [0,1,1,0];nnNewCodeBlock "xor - NNFit in Quick Model (2-1-1)";nSharedModel;nFunction NNFit(NS=[2-1-1], TF=[1,4], DN=[0,0], NC=2, CT=1, Code=1);nData; //訓練數據nx1 = [0,0,1];nx2 = [0,1,0];ny = [0,1,1];nData; //訓練數據nx1 = [1];nx2 = [1];ny = [0];nnNewCodeBlock "xor - NNFit in Quick Model (2-1-1)";nSharedModel;nDataFileWeight = [1,0];nFunction NNFit(NS=[2-1-1], TF=[1,4], DN=[0,0], NC=2, CT=1, Code=1);nData; //訓練數據nx1 = [0,0,1,1];nx2 = [0,1,0,1];ny = [0,1,1,0];nData; //驗證數據nx1 = [1];nx2 = [1];ny = [0];nnNewCodeBlock "xor - NNFit in Fortran Model (2-1-1)";n//NNFit(NS=[2-1-1], TF=[1,4], DN=[0,0], NC=2, CT=2, Code=3);nAlgorithm = UGO1[30];nParameter p(7);nDataFileWeight = [1,0];nVariable x1, x2, y[OutPut];nStartProgram [Fortran];n Function TFH(v) !Sigmoid (隱含層轉換函數)n real*8 vn TFH = 1/(1+exp(-v))n end functionnn Function TFO(v) !Linear (輸出層轉換函數)n real*8 vn TFO = vn end functionnnSubroutine MainModeln integer in real*8 xx1, xx2, s11, h11, s21, h21nn do i = 0, DataLength - 1n xx1 = x1(i) !輸入數據非歸一化n xx2 = x2(i) !輸入數據非歸一化n s11 = p1*xx1+p2*xx2+p6 !輸入至節點-1 (隱含層-1)n h11 = TFH(s11) !節點輸出 (節點-1, 隱含層-1)n s21 = p3*h11+p7+p4*xx1+p5*xx2 !輸入至節點-1 (輸出層)n h21 = TFO(s21) !節點輸出 (節點-1, 輸出層)nn y(i) = h21n end donnEnd SubroutinenEndProgram;nData; //訓練數據nx1 = [0,0,1,1];nx2 = [0,1,0,1];ny = [0,1,1,0];nData; //驗證數據nx1 = [1];nx2 = [1];ny = [0];nnNewCodeBlock "xor - NNFit in Fortran Model (2-1-1)";n//NNFit(NS=[2-1-1], TF=[1,4], DN=[0,0], NC=2, CT=2, Code=2);nAlgorithm = UGO1[30];nParameter p(7);nDataFileWeight = [1,0];nVariable x1, x2, y[OutPut];nStartProgram [Fortran];nSubroutine MainModeln integer in do i = 0, DataLength - 1n y(i) = p3*(1/(1+exp(-(p1*x1(i)+p2*x2(i)+p6))))+p7+p4*x1(i)+p5*x2(i)n end donEnd SubroutinenEndProgram;nData; //訓練數據nx1 = [0,0,1,1];nx2 = [0,1,0,1];ny = [0,1,1,0];nData; //驗證數據nx1 = [1];nx2 = [1];ny = [0];nnNewCodeBlock "xor - NNFit in Fortran Model (2-1-1)";nDataFileWeight = [1,0];nFunction NNFit(NS=[2-1-1], TF=[1,4], DN=[0,0], NC=2, CT=2, Code=1);nData; //訓練數據nx1 = [0,0,1,1];nx2 = [0,1,0,1];ny = [0,1,1,0];nData; //驗證數據nx1 = [1];nx2 = [1];ny = [0];nnNewCodeBlock "xor - NNFit in Quick Model (2-1-1)";nSharedModel;nDataFileWeight = [1,0];nFunction NNFit(NS=[2-1-1], TF=[1,4], DN=[0,0], NC=2, CT=1, Code=1);nData; //訓練數據nx1 = [0,0,1,1];nx2 = [0,1,0,1];ny = [0,1,1,0];nData; //驗證數據nx1 = [1];nx2 = [1];ny = [0];nnNewCodeBlock "xor - NNFit in Quick Model (2-1-1)";n//NNFit(NS=[2-1-1], TF=[1,4], DN=[0,0], NC=2, CT=1, Code=3);nAlgorithm = UGO1[30];nConstStrn TFH(v) = 1/(1+exp(-v)), //Sigmoid (隱含層轉換函數)n TFO(v) = v, //Linear (輸出層轉換函數)n xx1 = x1, //輸入數據非歸一化n xx2 = x2, //輸入數據非歸一化n s11 = p1*xx1+p2*xx2+p6, //輸入至節點-1 (隱含層-1)n h11 = TFH(s11), //節點輸出 (節點-1, 隱含層-1)n s21 = p3*h11+p7+p4*xx1+p5*xx2, //輸入至節點-1 (輸出層)n h21 = TFO(s21); //節點輸出 (節點-1, 輸出層)nParameter p(7);nDataFileWeight = [1,0];nSharedModel;nVariable x1, x2, y;nFunction y = h21;nData; //訓練數據nx1 = [0,0,1,1];nx2 = [0,1,0,1];ny = [0,1,1,0];nData; //驗證數據nx1 = [1];nx2 = [1];ny = [0];nnnnNewCodeBlock"2 擬合計算可輸出參數標準差及置信度";n//There are many test examples located in the folder: examplesnn//Nonlinear regression: any No. of variables and parameters, any user-defined functionnTitle "NLReg Demo - 1";nConfidenceLevel = 0.95;nParameter b1, b2, b3, b4;nVariable x, y;nFunction y=exp(b1*x)+exp(b2*x)+b3*sin(b4*x);nData;n//xtyn2t4n2.1t4.1n2.2t4.3n2.3t4.5n2.4t4.6n2.5t4.8n2.6t5.0n2.7t5.1n2.8t5.3n2.9t5.5nNewCodeBlock"3 可定義三維、四維及五維參數(Parameter)、傳遞參數(PassParameter)及常數";nConstant D(7,3)=[4,4,3,n3,3,2,n3,3,2,n3,2,3,n4,3,3,n2,2,1,n3,2,2]; //二維數組nBinParameter x(12,7,3);//工人 i 被安排到第 j 天第 k 個班次,三維數組!nAlgorithm = LP;nPassParameter w=Sum(i=1:12)(Sum(j=1:7)(x[i,j,1]));nMinFunction Sum(i=1:12)(Sum(j=1:7)(x[i,j,1]));nFor(i=1:12)(For(j=1:7)(Sum(k=1:3)(x[i,j,k])<=1));//每人每天最多工作一個班次nFor(i=1:12)(For(j=1:6)(x[i,j,3]+x[i,j+1,1]<=1)); //每人在任何時候都不能連續兩個班次工作nFor(i=1:12)(x[i,7,3]+x[i,1,1]<=1);nFor(i=1:12)(Sum(j=1:7)(Sum(k=1:3)(x[i,j,k]))<=5);//每人每周至少休息兩天nfor(j=1:7)(for(k=1:3)(Sum(i=1:12)(x[i,j,k])>=d[j,k]));//每個班次人數滿足需求nnNewCodeBlock"4 Latex 及 MathXL 公式支持";n y=exp(b1*x)+exp(b2*x)+b3*sin(b4*x);nnNewCodeBlock"5 擬合預測可以計算曲線一階至五階導數值";nParameter a=[1,3],b=[2,4],c=[3,5];//要優化的參數及其范圍nVariable t,y;//變量nFunction y=a*t^2+b*t+c;nData;n//t y 變量順序要和Variable后變量對應n-5 39n-4 24n-3 13n-2 6n-1 3n0 4n1 9n2 18n3 31n4 48n5 69nnnnNewCodeBlock"6 “SharingPar”關鍵字";n//1)SharingPar = 0,無作用;n//2)SharingPar = 1,前一最優解作為后一的參數初值,對所有參數,無論該n//參數最初是否設定有初值;n//3)SharingPar = 2,對沒有設定初值的參數,前一最優解作為后一的參數初n//值,對最初已設定了初值得參數,仍使用最初設定的參數;n//4)SharingPar = 3,前面所有計算參數最優解的平均值作為后一的參數初值,n//對所有參數,無論該參數最初是否設定有初值;n//5)SharingPar = 4,對沒有設定初值的參數,前面所有組參數最優解的平均n//值作為后一組的參數初值,對最初已設定了初值得參數,仍使用最初設定的n//參數;nnNewCodeBlock"6.1 csuh g-up";n Title "繪制csuh本構模型塑性勢面";n SharingPar = 1nConstant M=1.25,xm=1.8,kesi=0.0974462633886968,py=4.619;nConstStr Mc=M*exp(-xm*kesi);nLoopConstant p=[1e-10:0.01:py];nParameter q=[0,];nPlotLoopData p[x],q[y];nFunction ln(p/py)+ln(1+q^2/(Mc^2*p^2))=0;nnNewCodeBlock"6.2 csuh g-low";n Title "繪制csuh本構模型塑性勢面";nSharingPar = 1nConstant M=0.883789546430,xm=1.8,kesi=0.0974462633886968,py=4.619;nConstStr Mc=M*exp(-xm*kesi);nLoopConstant p=[1e-10:0.01:py];nParameter q=[-5,0];nPlotLoopData p[x],q[y];nFunction ln(p/py)+ln(1+q^2/(Mc^2*p^2))=0;nnNewCodeBlock"7 高價微分方程簡寫";nNewCodeBlock"7.1 10.0版本之前的寫法";nConstant e=exp(1);nVariable x=[0,1],u=[1,1/e],u''=[1,1/e],u''''=[1,1/e],u''''''=[1,1/e],u''''''''=[1,1/e],u''''''''''=[1,1/e];nPlot x[x],u,u',u'',u''';nODEFunction u’’’’’’’’’’’’=2*exp(x)*u''+u''';nNewCodeBlock"7.2 10.0版本的寫法";nConstant e=exp(1);nVariable x=[0,1],u=[1,1/e],u(2')=[1,1/e],u(4')=[1,1/e],u(6')=[1,1/e],u(8')=[1,1/e],u(10')=[1,1/e];nPlot x[x],u,u',u'',u''';nODEFunction u(12')=2*exp(x)*u''+u''';nnNewCodeBlock"8 增加“SumAnd”和“SumOr”函數;";nNewCodeBlock"8.1 10.0版本之前的寫法";nConstant n=15; //天數nConstant a=[25,16,24,17,29,25,22,28,21,17,28,14,12,25,11]; //人數nConstant p=[208,212,213,217,206,203,212,214,200,204,208,209,219,216,214]; //費用nIntParameter x(n);nAlgorithm = LP;nMinFunction Sum(i=1:n,x)(x*p[i]);nFor(i=1:n)(Sum(j=1:n)(if((j<>Wrap(i+1,n))and(j<>Wrap(i+2,n))and(j<>Wrap(i+3,n))and(j<>Wrap(i+4,n))and(j<>nWrap(i+5,n)),x[j]))>=a[i]);nnnNewCodeBlock"8.2 10.0版本的簡化寫法";nConstant n=15; //天數nConstant a=[25,16,24,17,29,25,22,28,21,17,28,14,12,25,11]; //人數nConstant p=[208,212,213,217,206,203,212,214,200,204,208,209,219,216,214]; //費用nIntParameter x(n);nAlgorithm = LP;nMinFunction Sum(i=1:n,x)(x*p[i]);nFor(i=1:n)(Sum(j=1:n)(if(SumAnd(k=1:5)(j<>Wrap(i+k,n)),x[j]))>=a[i]);nnNewCodeBlock"9. 批量定義范圍:LowBound,UpBound";nNewCodeBlock"9.1 10.0版本之前的寫法";nParameter x1=[-2.3,2.3], x2=[-2.3,2.3], x3=[-3.2,3.2], x4=[-3.2,3.2], x5=[-3.2,3.2];nMinFunction exp(Prod(i=1:5)(x[i]));nSum(i=1:5)(x[i]^2)-10=0;nx2*x3-5*x4*x5=0;nx1^3+x2^3+1=0;nNewCodeBlock"9.2 10.0版本的寫法";nParameter x(5);nLowBound = -[2.3,2.3,3.2,3.2,3.2];nUpBound = [2.3,2.3,3.2,3.2,3.2];nMinFunction exp(Prod(i=1:5)(x[i]));//+a1+a2;nSum(i=1:5)(x[i]^2)-10=0;nx2*x3-5*x4*x5=0;nx1^3+x2^3+1=0;nnNewCodeBlock"10 “?”定義 Sheet 或 CodeSheet 范圍,可自動獲取數據范圍";nTitle "NLReg Demo - 1";nConfidenceLevel = 0.95;nParameter b1, b2, b3, b4;nVariable x, y;nFunction y=exp(b1*x)+exp(b2*x)+b3*sin(b4*x);nDataFile "CodeSheet1[A1:B?]";nnNewCodeBlock"11 矩陣計算功能強化";n//矩陣相加:AddMat();n//矩陣相減:SubMat();n//矩陣相乘:MultMat();n//矩陣求逆:InvMat();n//矩陣轉置:TransMat();n//矩陣表達式展開:MatrixStr();n//矩陣操作:Matrix()nNewCodeBlock"11.1 矩陣解法1";nConstant c(11,11)=[1,1,1,1,1,1,1,1,1,1,1,n1,1.1,1.1^2,1.1^3,1.1^4,1.1^5,1.1^6,1.1^7,1.1^8,1.1^9,1.1^10,n1,1.2,1.2^2,1.2^3,1.2^4,1.2^5,1.2^6,1.2^7,1.2^8,1.2^9,1.2^10,n1,1.3,1.3^2,1.3^3,1.3^4,1.3^5,1.3^6,1.3^7,1.3^8,1.3^9,1.3^10,n1,1.4,1.4^2,1.4^3,1.4^4,1.4^5,1.4^6,1.4^7,1.4^8,1.4^9,1.4^10,n1,1.5,1.5^2,1.5^3,1.5^4,1.5^5,1.5^6,1.5^7,1.5^8,1.5^9,1.5^10,n1,1.6,1.6^2,1.6^3,1.6^4,1.6^5,1.6^6,1.6^7,1.6^8,1.6^9,1.6^10,n1,1.7,1.7^2,1.7^3,1.7^4,1.7^5,1.7^6,1.7^7,1.7^8,1.7^9,1.7^10,n1,1.8,1.8^2,1.8^3,1.8^4,1.8^5,1.8^6,1.8^7,1.8^8,1.8^9,1.8^10,n1,1.9,1.9^2,1.9^3,1.9^4,1.9^5,1.9^6,1.9^7,1.9^8,1.9^9,1.9^10,n1,2.0,2.0^2,2.0^3,2.0^4,2.0^5,2.0^6,2.0^7,2.0^8,2.0^9,2.0^10];nConstant p(11,1)=[0,0,0,0,0,pi,0,0,0,0,0];nd=InvMat(c);nx=MultMat(d,p);nNewCodeBlock"11.2 矩陣解法2 最方便快捷";nConstant c(11,11)=[1,1,1,1,1,1,1,1,1,1,1,n1,1.1,1.1^2,1.1^3,1.1^4,1.1^5,1.1^6,1.1^7,1.1^8,1.1^9,1.1^10,n1,1.2,1.2^2,1.2^3,1.2^4,1.2^5,1.2^6,1.2^7,1.2^8,1.2^9,1.2^10,n1,1.3,1.3^2,1.3^3,1.3^4,1.3^5,1.3^6,1.3^7,1.3^8,1.3^9,1.3^10,n1,1.4,1.4^2,1.4^3,1.4^4,1.4^5,1.4^6,1.4^7,1.4^8,1.4^9,1.4^10,n1,1.5,1.5^2,1.5^3,1.5^4,1.5^5,1.5^6,1.5^7,1.5^8,1.5^9,1.5^10,n1,1.6,1.6^2,1.6^3,1.6^4,1.6^5,1.6^6,1.6^7,1.6^8,1.6^9,1.6^10,n1,1.7,1.7^2,1.7^3,1.7^4,1.7^5,1.7^6,1.7^7,1.7^8,1.7^9,1.7^10,n1,1.8,1.8^2,1.8^3,1.8^4,1.8^5,1.8^6,1.8^7,1.8^8,1.8^9,1.8^10,n1,1.9,1.9^2,1.9^3,1.9^4,1.9^5,1.9^6,1.9^7,1.9^8,1.9^9,1.9^10,n1,2.0,2.0^2,2.0^3,2.0^4,2.0^5,2.0^6,2.0^7,2.0^8,2.0^9,2.0^10];nConstant p(11,1)=[0,0,0,0,0,pi,0,0,0,0,0];nx=Matrix(c^Inv*p);nNewCodeBlock"11.3 優化方法求解-1";nAlgorithm = SM2;nConstant c(0:10,0:10)=[1,1,1,1,1,1,1,1,1,1,1,n1,1.1,1.1^2,1.1^3,1.1^4,1.1^5,1.1^6,1.1^7,1.1^8,1.1^9,1.1^10,n1,1.2,1.2^2,1.2^3,1.2^4,1.2^5,1.2^6,1.2^7,1.2^8,1.2^9,1.2^10,n1,1.3,1.3^2,1.3^3,1.3^4,1.3^5,1.3^6,1.3^7,1.3^8,1.3^9,1.3^10,n1,1.4,1.4^2,1.4^3,1.4^4,1.4^5,1.4^6,1.4^7,1.4^8,1.4^9,1.4^10,n1,1.5,1.5^2,1.5^3,1.5^4,1.5^5,1.5^6,1.5^7,1.5^8,1.5^9,1.5^10,n1,1.6,1.6^2,1.6^3,1.6^4,1.6^5,1.6^6,1.6^7,1.6^8,1.6^9,1.6^10,n1,1.7,1.7^2,1.7^3,1.7^4,1.7^5,1.7^6,1.7^7,1.7^8,1.7^9,1.7^10,n1,1.8,1.8^2,1.8^3,1.8^4,1.8^5,1.8^6,1.8^7,1.8^8,1.8^9,1.8^10,n1,1.9,1.9^2,1.9^3,1.9^4,1.9^5,1.9^6,1.9^7,1.9^8,1.9^9,1.9^10,n1,2.0,2.0^2,2.0^3,2.0^4,2.0^5,2.0^6,2.0^7,2.0^8,2.0^9,2.0^10];nConstant p(0:10)=[0,0,0,0,0,pi,0,0,0,0,0];nParameter x(0:10);nFunction For(i=0:10)(Sum(j=0:10)(x[j]*c[i,j])=p[i]);nnNewCodeBlock"11.4 優化方法求解-2";nAlgorithm = SM2;nFunction For(i=0:10)(Sum(j=0:10)(x[j]*(1+i*0.1)^j)=if(i=5,pi,0));nnnNewCodeBlock"12 復數擬合功能的改進和增強;";nNewCodeBlock"12.1 分解擬合代碼";nVariable x,y1,y2;nSharedModel;nFunction y1 = a/(1+(b*x)^2);ny2 = -(a*c)/(1+(n*x)^2);nData;n0 3 -0.789n0.01 2.88462 -0.660n0.02 2.58621 -0.648n0.03 2.20588 -0.511n0.04 1.82927 -0.440n0.05 1.5 -0.418n0.06 1.22951 -0.338n0.07 1.01351 -0.279n0.08 0.8427 -0.237n0.09 0.70755 -0.218n0.1 0.6 -0.177n0.11 0.5137 -0.136nNewCodeBlock"12.2 直接擬合代碼";nComplexStr = i;nVariable x,y[realPart],y[imagPart];nFunction y= A/(1+(x*B)^2) - i*(A*C)/(1+(x*B)^2);nData;n0 3 -0.789n0.01 2.88462 -0.660n0.02 2.58621 -0.648n0.03 2.20588 -0.511n0.04 1.82927 -0.440n0.05 1.5 -0.418n0.06 1.22951 -0.338n0.07 1.01351 -0.279n0.08 0.8427 -0.237n0.09 0.70755 -0.218n0.1 0.6 -0.177n0.11 0.5137 -0.136nnNewCodeBlock"13 “MDataSet”功能改進;";nNewCodeBlock"13.1 pascal 最短路徑問題";nConstant n = 8;nParameters Cities(1:n)=[1,n,0];nConstant Dis(0:n+1,0:n+1) = [0,2,5,1,1000,1000,1000,1000,1000,1000,n2,0,1000,1000,12,14,10,1000,1000,1000,n5,1000,0,1000,6,10,4,1000,1000,1000,n1,1000,1000,0,13,12,11,1000,1000,1000,n1000,12,6,13,0,1000,1000,3,9,1000,n1000,14,10,12,1000,0,1000,6,5,1000,n1000,10,4,11,1000,1000,0,8,10,1000,n1000,1000,1000,1000,3,6,8,0,1000,5,n1000,1000,1000,1000,9,5,10,1000,0,2,n1000,1000,1000,1000,1000,1000,1000,5,2,0];nnnMinimum = True;nStartProgram;nvar i : integer;ntemD : Double;nbeginntemD := 0;nfor i := 1 to n - 1 dontemD := temD + Dis[Cities[i],Cities[i+1]];nFunctionResult := temD + Dis[0,Cities[1]] + Dis[Cities[n],n+1];nend;nEndProgram;nNewCodeBlock"13.2 快捷代碼 最短路徑問題";nConstant n = 8;nParameters Cities(1:n)=[1,n,0];nMDataSet[1000];//默認元素為1000ni,j,Dis=n0 1 2n0 2 5n0 3 1n1 4 12n1 5 14n1 6 10n2 4 6n2 5 10n2 6 4n3 4 13n3 5 12n3 6 11n4 7 3n4 8 9n5 7 6n5 8 5n6 7 8n6 8 10n7 9 5n8 9 2nEndMDataSet;nMinFunction Dis[0,Cities[1]]+Sum(i=1:n-1)(Dis[Cities[i],Cities[i+1]])+ Dis[Cities[n],n+1];nnnNewCodeBlock"14 “ParVariable”可以定義多個缺失變量;";nNewCodeBlock"14.1 定義一個缺失變量";nTitle "缺少變量值的特殊擬合";nVariable x,y;nParVariable a=[0,2*pi];nSharedModel;nFunction x=r*(a-sin(a+b))*cos(b)+r*(1-cos(a*b))*sin(b);ny=r*(1-cos(a-b))*cos(b)-r*(a-sin(a*b))*sin(b);nRowData;n35,41,46,52,58,63,70,75,80,85,90,95;n32,33,33.5,33,32,30,28,25,21,17.5,13,9;nNewCodeBlock"14.2 定義多個缺失變量";nTitle "缺少變量值的特殊擬合";nVariable x,y;nParVariable a=[0,2*pi],aa=[0,2*pi];nSharedModel;nFunction x=r*(a+aa-sin(a+aa+b))*cos(b)+r*(1-cos(a*b))*sin(b);ny=r*(1-cos(a+aa-b))*cos(b)-r*(a-sin(a*b))*sin(b);nRowData;n35,41,46,52,58,63,70,75,80,85,90,95;n32,33,33.5,33,32,30,28,25,21,17.5,13,9;

精選推薦

  • 如何正確選擇白板供應商
    如何正確選擇白板供應商

    目前在無錫想采購一塊白板不管是實體店鋪,還是網絡平臺都有很多選擇,想要到專業的無錫白板公司采購還需要掌握一定的方式技巧。現

  • 柴油發電機組供應商
    柴油發電機組供應商

      t 揚州華東動力機械有限公司,位于江蘇省揚州市江都區仙城工業園,是專業從事發電機、柴油及燃氣發電機組研發、制造、銷售、服務于

  • 高溫輻射爐
    高溫輻射爐

    5.2.2高溫輻射爐5.2.2.1溫度控制★(1)樣品溫度范圍:常溫~1400℃。★(2)均溫區:長度不小于80mm。★(3)中心區:長度不小于10mm。(4)溫度梯度(均

  • 高壓鍋在什么情況下會爆炸?
    高壓鍋在什么情況下會爆炸?

    近日,多地發生高壓鍋爆炸事故,給不少家庭帶來了傷害和財產損失。那么,什么情況下會導致高壓鍋爆炸呢?首先,當高壓鍋內部壓力過高時,如果

0