matlab求目標函數(shù)最好的方法 怎么用lingo求解整數(shù)規(guī)劃?
怎么用lingo求解整數(shù)規(guī)劃?目前大學生接觸較多的數(shù)學軟件是matlab,其從網(wǎng)上下載的linprog函數(shù)能夠解決的辦法大量的線性規(guī)劃問題,但是卻還沒有用于解決整數(shù)具體規(guī)劃的工具箱。當然了,另外一款專
怎么用lingo求解整數(shù)規(guī)劃?
目前大學生接觸較多的數(shù)學軟件是matlab,其從網(wǎng)上下載的linprog函數(shù)能夠解決的辦法大量的線性規(guī)劃問題,但是卻還沒有用于解決整數(shù)具體規(guī)劃的工具箱。當然了,另外一款專業(yè)點區(qū)分于運籌學的軟件lingo【他另外個同胞兄弟叫l(wèi)indo,兩者差不多】,導致功能單一,這個軟件很小,非常好用。
1,先打開lingo。
matlab 教程?
前言:matlab只不過是個軟件,用處成功機械的計算,而該如何安排好了這些換算,要用戶能夠掌握最基本的數(shù)學概念。這篇將詳細介紹工程數(shù)學中常用的數(shù)學概念,與matlab倒是當然不具體,但表面看來是matlab的基礎(chǔ)。
1.數(shù)值與符號
如果給工程數(shù)學問題分類,最大的兩類當然是數(shù)值問題和符號問題,填寫matlab的數(shù)值運算和符號運算結(jié)果。簡單而言,數(shù)值運算那就是所有的變量的值.設(shè),求解答的又是一些具體一點的值;符號運算則還好反過來,不那些要求所有的變量都三角形的三邊,求高人的結(jié)果也不是變量詳細的值,反而變量之間的關(guān)系。一個簡單例子是
①數(shù)值問題:求解一元二次方程,ax2bxc0,其中abc1,所任意凸四邊形的結(jié)果當然是x幾點幾幾點幾i,是個復數(shù),是個詳細的數(shù)值。
②符號問題:求解一元二次方程,ax2bxc0,所求的的結(jié)果當然是x求根公式,是abc的函數(shù),是個關(guān)系
要知道,一個問題是數(shù)值問題還是符號問題,不大程度上判斷于結(jié)果要求大神解答的是數(shù)值應該關(guān)系。不過兩個問題也可以不相互轉(zhuǎn)化,諸如數(shù)值問題的一元二次方程,我們一般會先轉(zhuǎn)變成符號問題,把abcx3求根公式,求出來變量x的具體數(shù)值。但實際中,像是我們并不我推薦這樣的做,原因是matlab的數(shù)值和符號是已經(jīng)有所不同的兩套系統(tǒng),相互轉(zhuǎn)化不僅必須無用的數(shù)值符號轉(zhuǎn)換語言,更很可能給他查錯的不便。
2.是是數(shù)值問題
以下是常見的數(shù)值問題,文中提及的解法較多在數(shù)值計算、科學計算、數(shù)值算法這類書中找不到。
2.1代數(shù)方程
代數(shù)方程又可分線性方程和非線性方程,線性方程象可以轉(zhuǎn)變?yōu)榫仃囆问紸Xb,對A求逆即可。求逆的數(shù)值解法好象有高斯賽德爾迭代,超松弛迭代等。非線性方程一般轉(zhuǎn)化成為f(x)zeros其中x是個向量,右側(cè)的zeros它表示f是個多作為輸出函數(shù),數(shù)值解法像是是迭代,比較普遍的有牛頓迭代,最速梯度,點斜式等。
2.2常微分方程
常微分方程象轉(zhuǎn)化為Dyf(y,t),且y(0)y0是初始條件,其中y和Dy都是向量,f確實是個多輸出低函數(shù),數(shù)值解法有歐拉法,龍格庫塔法。
2.3偏微分方程
復分析比較緊張,matlab處理偏微分方程也不專業(yè),我也甚至不用什么matlab處理這類問題。但工程數(shù)學上,偏微分方程的解法有兩類,差分法和有限元法。差分法需要按結(jié)構(gòu)中心差分,迎風差分等。有限元分析要計算出剛度矩陣等。
2.4插值和數(shù)據(jù)擬合
插值和擬合是完全完全不同的兩個數(shù)學概念,只不過某些時候很多人都混淆不清了。兩者的描述都是可以歸結(jié)為:己知函數(shù)上的點(x1,y1),(x2,y2)...(xn,yn),求一個三角形的三邊的x,不對應的y的數(shù)值。插值常用的多項式插值,三次樣條插值。擬合的本質(zhì)是一個最優(yōu)化問題,其中最常用的一種曲線擬合是線性模型擬合,求解方法是最小二乘法。
2.5線性系統(tǒng)周期傅里葉變換
嚴不說來,這并肯定不能算一個數(shù)學問題,只不過是一種運算,就好像聽說加減乘除一樣。特殊性只是相對而言這種跳躍是這對一個向量進行,且運算后的結(jié)果仍然是個向量。這里提出來是為了強調(diào)這種傅里葉變換的限定,要求是離散時間信號周期,這也是數(shù)值方法能去處理的任何一種傅里葉變換。
2.6最優(yōu)化問題
最優(yōu)化問題都很寬泛性,好象是可以簡單歸因為求目標函數(shù)f(x)的大的或是最小值,其中f是一個單輸出的函數(shù),x是一個向量。其中x要滿足線性約束條件、線性約束條件、上下界。具體看的解法有最速梯度,遺傳,蟻群,退火等算法。
2.7數(shù)值積分
已知函數(shù)上的點(x1,y1),(x2,y2),...(xn,yn),求函數(shù)在x1到xn的定積分。最常見算法有平行四邊形公式,梯形公式,辛普森公式。類似于的問題還有一個數(shù)值求導。
3.是個符號問題
以下是較常見的符號問題,不需要特別強調(diào)的是,無解問題。數(shù)值問題中也有一部分無解問題,但大多數(shù)工程中是碰不出來的。而符號問題恰巧因為,絕大部分我們遇到的符號問題都是就沒解的,的或確切的說,沒有解析解。.例如求一元三十次方程,我們明白了x和這些系數(shù)必然關(guān)系,但難以寫一段顯式的表達式,也就是說沒有解析解。
3.1遞推轉(zhuǎn)通項
這個問題這個可以歸罪于為:.設(shè)xn1f(xn),求xn,較常見于數(shù)列的推導。
3.2代數(shù)方程
區(qū)別于數(shù)值問題中的代數(shù)方程,這里的代數(shù)方程問題也可以具體描述為:f(x,c)0,求xx(c),這里必須求解釋的當然是x和c的關(guān)系。
3.3常微分方程
區(qū)別于數(shù)值問題中的常微分數(shù)方程,這里的代數(shù)方程問題可以不詳細解釋為:Dyf(y,t,c),求yx(t,c),好象不需要初值條件。
3.4符號積分
區(qū)別于數(shù)值問題中的數(shù)值積分,這里的符號積分可以不詳細解釋為:.設(shè)函數(shù)關(guān)系yf(x),求y的那散修積分。雖然的問題還有符號求導。
matlab最視頻教程(一):軟件基本概念
前言:①要是你是第二次建議使用matlab,建議閱讀什么本教程。②以2017a版本為基礎(chǔ),適用規(guī)定于2014a及之后的版本,之前的版本未測量。③結(jié)合這兩個月在壇子里回答我的問題,收拾好成教程,水平有限,歡迎指正。
的界面
home標簽下,不能找到layout通過設(shè)置里/復位,可以不設(shè)置各板塊的顯示與隱藏。其中有幾個部分,請務(wù)必要不顯示
①CurrentFolder:中文就像英文翻譯成工作路徑,就像設(shè)置成一個自己組建的、有讀寫權(quán)限的文件夾,或者我的文檔下組建一個matlab文件夾
②CommandWindow:字面意思是命令窗口,利用運行代碼,所有的代碼都是在這里再輸入
③Workspace:字面意思是工作空間,反正是存儲地所有運行結(jié)果的地方,“暫”的具體一點含義是:關(guān)閉matlab后丟失的
2.軟件中的基本概念
2.1函數(shù)
matlab只是因為強橫無比,那是而且提供大量的函數(shù),你也也可以建立自定義函數(shù),方法是:Home-gtNew-gtfunction。選項卡函數(shù)像是存放在工作路徑下。函數(shù)文件的特征是:擴展名m,內(nèi)容的第一行以function開頭,妖軍內(nèi)容是“輸出變量函數(shù)名(再輸入變量)”。且函數(shù)名和文件名同一。
每個函數(shù)在Command Window中啟動,單獨結(jié)束特定的計算任務(wù),運行是輸入“輸出變量函數(shù)名(再輸入變量)”,然后把按回車。比如有個系統(tǒng)隨機軟件的函數(shù)是為了求絕對值的,函數(shù)名abs,因為在Command Window里輸入“aabs(-1)”,是會顯示運算結(jié)果為“a1”。且運算結(jié)果會在Workspace里會出現(xiàn)一個變量a,鼠標雙擊后可看見了a的值是1。
2.2腳本
也可以表述為特殊的方法的函數(shù),這種函數(shù)內(nèi)容的開頭沒有function那行,所以是沒有鍵入、輸出低變量,也沒有函數(shù)名。文件擴展名和函數(shù)一樣是m,也需要在Command Window里正常運行。腳本也是用戶組建的,方法是:Home-gtNewScript。像是需要保存在工作路徑下。腳本的功能是結(jié)束用戶必須的、復雜的計算任務(wù),大多數(shù)腳本里會調(diào)用很多函數(shù)。
2.3GUI
就像翻譯成為界面,是人機交互界面的意思。寫腳本處理問題的方法有些各位,讓人看上去更像是碼農(nóng),所以現(xiàn)在很多問題可以通過界面點點鼠標解決。這時候就必須先打開界面,先打開方法是:在APPS標簽里可以能找到所有已安裝的GUI工具,右擊去掉。再注意右邊有個小三角可以不點開。和函數(shù)完全不一樣,用戶也這個可以自己建立自定義設(shè)置GUI,這部分特有急切,對新手而言有些如此遙遠。
2.4toolbox
好象英譯中成工具箱,matlab將功能生僻的或應用上自成體系的一組函數(shù)和GUI發(fā)我成一個toolbox。正版的matlab在購買時,甚至每一個toolbox是要不能會收費的,因此toolbox也可以不表述為matlab產(chǎn)品的模塊,一個工具箱那是一個產(chǎn)品/商品。
2.5simulink
好象用matlab解決問題的過程是:用戶選項卡腳本,在Command Window里運行腳本。而腳本的運行邏輯是順序執(zhí)行,和像是的編程一樣。simulink則可以提供另一種思路,圖形化編程,稍微有點像labview,這種方法很適合我于物理模型的仿真,并且偶爾會用“matlab編程”和“simulink仿真”特別強調(diào)。使用方法是在home標簽下再點simulink。
3.獲得幫助
廣泛的獲得好處有四種方法
①home標簽里,有個Help標志,點開后也可以完成任務(wù)各工具箱/產(chǎn)品的完整幫助文檔。新版本中系統(tǒng)默認建議使用在線,除用本地幫助的辦法是在home標簽里,Preferences下的matlab/Help里你選擇installedlocally
②官網(wǎng)上能找到支持,然后再可以額外教程。這種方法獲得的幫助文檔和第一種方法一樣的。
③在Command Window里輸入輸入doc函數(shù)名來獲得幫助。例如然后輸入#34docfft#34也可以額外離散傅里葉變換函數(shù)fft的幫助和范例。這種方法我得到的文檔是前兩種方法文檔中的部分。其實,前提不是你要清楚函數(shù)名,才能能找到幫助。這種方法更適合于獲得系統(tǒng)自帶函數(shù)的使用說明。
④不使用GUI時,常見界面的角落里有Help,點開這個可以額外幫助。這種方法完成的文檔是第一和第二種方法文檔中的部分。這種方法適合我于額外系統(tǒng)從網(wǎng)上下載GUI的使用說明。
這幾種方法中,使用較多的是第三種,只要你很清楚自己是需要的函數(shù)名,就這個可以用這種我得到只能證明和范例。而實際建議使用中,一般正確的系統(tǒng)從網(wǎng)上下載函數(shù),也并不是什么更加多,至少幾十個?真正不需要謹記使用方法的很可能就幾個,通常大都很清楚函數(shù)名,要是用時候doc幫一下忙。