matlab隨機(jī)生成十個(gè)數(shù)求最小值 matlab如何用fmin找最大最小值?
matlab如何用fmin找最大最小值?Matlab中函數(shù)的最小值的實(shí)例如下:計(jì)算下面函數(shù)在區(qū)間(0,1)內(nèi)的最小值. [x,fval,exitflag,output]fminbnd((x^3 cos
matlab如何用fmin找最大最小值?
Matlab中函數(shù)的最小值的實(shí)例如下:計(jì)算下面函數(shù)在區(qū)間(0,1)內(nèi)的最小值. [x,fval,exitflag,output]fminbnd((x^3 cos(x) x*log(x))/:9funcCount:9algorithm:golden section search,parabolic interpolation在[0,5]上求下面函數(shù)的最小值先自定義函數(shù):在MATLAB編輯器中建立M文件為:
function f myfun(x)f (x-3).^2 - 1;保存為myfun.m,然后在命令窗口鍵入命令: xfminbnd(@myfun,0,5)則結(jié)果顯示為:x 3
matlab怎么做min模型?
在matlab中對(duì)數(shù)據(jù)中的任意兩個(gè)元素兩兩之間作比較,每一次比較都將最小值賦值給臨時(shí)變量t
matlab簡(jiǎn)單問題,關(guān)于fzero?
z
matlab如何根據(jù)公式求值?
x0:10:n; yf(x); plot(y) 0是x的最小值,10是遞增的,n 就是x的最大值, yf(x)是關(guān)于x函數(shù)求值, plot輸出y的圖形, 然后你到MATLAB的workspac
matlab 教程?
前言:matlab只是個(gè)軟件,用來完成機(jī)械的計(jì)算,而如何安排這些計(jì)算,需要用戶掌握最基本的數(shù)學(xué)概念。這篇將介紹工程數(shù)學(xué)中常用的數(shù)學(xué)概念,與matlab似乎并不相關(guān),但實(shí)則是matlab的基礎(chǔ)。
1.數(shù)值與符號(hào)
如果給工程數(shù)學(xué)問題分類,最大的兩類肯定是數(shù)值問題和符號(hào)問題,對(duì)應(yīng)matlab的數(shù)值運(yùn)算和符號(hào)運(yùn)算。簡(jiǎn)而言之,數(shù)值運(yùn)算就是所有的變量的值已知,求解的也是一些具體的值;符號(hào)運(yùn)算則剛好相反,不要求所有的變量都已知,求解的結(jié)果也不是變量具體的值,而是變量之間的關(guān)系。一個(gè)簡(jiǎn)單的例子是
①數(shù)值問題:求解一元二次方程,ax2 bx c0,其中abc1,所求得的結(jié)果一定是x幾點(diǎn)幾 幾點(diǎn)幾i,是個(gè)復(fù)數(shù),是個(gè)具體的數(shù)值。
②符號(hào)問題:求解一元二次方程,ax2 bx c0,所求的的結(jié)果一定是x求根公式,是abc的函數(shù),是個(gè)關(guān)系
可見,一個(gè)問題是數(shù)值問題還是符號(hào)問題,很大程度上決定于結(jié)果需要求解的是數(shù)值還是關(guān)系。當(dāng)然兩個(gè)問題也可以相互轉(zhuǎn)化,比如數(shù)值問題的一元二次方程,我們一般會(huì)先轉(zhuǎn)化成符號(hào)問題,把a(bǔ)bc代入求根公式,求出來變量x的具體數(shù)值。但實(shí)際中,一般我們并不推薦這樣做,原因是matlab的數(shù)值和符號(hào)是完全不同的兩套系統(tǒng),相互轉(zhuǎn)化不僅需要多余的數(shù)值符號(hào)轉(zhuǎn)換語(yǔ)言,更可能帶來查錯(cuò)的不便。
2.典型數(shù)值問題
以下是常見的數(shù)值問題,文中提到的解法均可在數(shù)值計(jì)算、科學(xué)計(jì)算、數(shù)值算法這類書中找到。
2.1代數(shù)方程
代數(shù)方程又分為線性方程和非線性方程,線性方程一般可以轉(zhuǎn)化為矩陣形式AXb,對(duì)A求逆即可。求逆的數(shù)值解法一般有高斯賽德爾迭代,超松弛迭代等。非線性方程一般轉(zhuǎn)化為f(x)zeros其中x是個(gè)向量,右側(cè)的zeros表示f是個(gè)多輸出函數(shù),數(shù)值解法一般是迭代,常見的有牛頓迭代,最速梯度,點(diǎn)斜式等。
2.2常微分方程
常微分方程一般轉(zhuǎn)化為Dyf(y,t),且y(0)y0是初始條件,其中y和Dy都是向量,f也是個(gè)多輸出函數(shù),數(shù)值解法有歐拉法,龍格庫(kù)塔法。
2.3偏微分方程
偏微分方程比較復(fù)雜,matlab處理偏微分方程也不專業(yè),我也幾乎不用matlab處理這類問題。但工程數(shù)學(xué)上,偏微分方程的解法有兩類,差分法和有限元法。差分法需要采用中心差分,迎風(fēng)差分等。有限元需要計(jì)算剛度矩陣等。
2.4插值和擬合
插值和擬合是完全不同的兩個(gè)數(shù)學(xué)概念,雖然很多時(shí)候很多人都混淆了。兩者的描述都可以歸結(jié)為:已知函數(shù)上的點(diǎn)(x1,y1),(x2,y2)...(xn,yn),求一個(gè)已知的x,對(duì)應(yīng)的y的數(shù)值。插值常用的多項(xiàng)式插值,三次樣條插值。擬合的本質(zhì)是一個(gè)最優(yōu)化問題,其中最常用的一種擬合是線性擬合,求解方法是最小二乘法。
2.5離散周期傅里葉變換
嚴(yán)格說來,這并不能算一個(gè)數(shù)學(xué)問題,只是一種運(yùn)算,就好像加減乘除一樣。特殊性在于這種變換是對(duì)于一個(gè)向量進(jìn)行,且運(yùn)算后的結(jié)果依然是個(gè)向量。這里提出來是為了強(qiáng)調(diào)這種傅里葉變換的限定,要求是離散周期,這也是數(shù)值方法能處理的唯一一種傅里葉變換。
2.6最優(yōu)化問題
最優(yōu)化問題比較寬泛,一般可以歸結(jié)為求目標(biāo)函數(shù)f(x)的最大或者最小值,其中f是一個(gè)單輸出的函數(shù),x是一個(gè)向量。其中x需要滿足線性約束條件、非線性約束條件、上下界。具體的解法有最速梯度,遺傳,蟻群,退火等算法。
2.7數(shù)值積分
已知函數(shù)上的點(diǎn)(x1,y1),(x2,y2),...(xn,yn),求函數(shù)在x1到xn的定積分。常見算法有矩形公式,梯形公式,辛普森公式。類似的問題還有數(shù)值求導(dǎo)。
3.典型符號(hào)問題
以下是常見的符號(hào)問題,需要特別指出的是,無解問題。數(shù)值問題中也有一部分無解問題,但大多數(shù)工程中是碰不到的。而符號(hào)問題恰好相反,絕大部分我們遇到的符號(hào)問題都是沒有解的,或者準(zhǔn)確的說,沒有解析解。比如求一元五次方程,我們知道x和這些系數(shù)存在關(guān)系,但無法寫出顯式的表達(dá)式,也就是說沒有解析解。
3.1遞推轉(zhuǎn)通項(xiàng)
這個(gè)問題可以歸結(jié)為:已知xn 1f(xn),求xn,常見于數(shù)列的推導(dǎo)。
3.2代數(shù)方程
區(qū)別于數(shù)值問題中的代數(shù)方程, 這里的代數(shù)方程問題可以描述為:f(x,c)0,求xx(c),這里需要求解的其實(shí)是x和c的關(guān)系。
3.3常微分方程
區(qū)別于數(shù)值問題中的常微分?jǐn)?shù)方程, 這里的代數(shù)方程問題可以描述為:Dyf(y,t,c),求yx(t,c),一般無需初值條件。
3.4符號(hào)積分
區(qū)別于數(shù)值問題中的數(shù)值積分,這里的符號(hào)積分可以描述為:已知函數(shù)關(guān)系yf(x),求y的不定積分。同樣的問題還有符號(hào)求導(dǎo)。
matlab最基礎(chǔ)教程(一):軟件基本概念
前言:①如果你是第一次使用matlab,建議閱讀本教程。②以2017a版本為基礎(chǔ),適用于2014a及之后的版本,之前的版本未測(cè)試。③結(jié)合這兩個(gè)月在壇子里回答的問題,整理成教程,水平有限,歡迎指正。
的界面
home標(biāo)簽下,找到layout進(jìn)行設(shè)置/復(fù)位,可以設(shè)置各板塊的顯示與隱藏。其中有幾個(gè)部分,請(qǐng)務(wù)必要顯示
①Current Folder:中文一般翻譯成工作路徑,一般設(shè)置成一個(gè)自己建立的、有讀寫權(quán)限的文件夾,例如我的文檔下建立一個(gè)matlab文件夾
②Command Window:字面意思是命令窗口,用來運(yùn)行代碼,所有的代碼都是在這里輸入
③Workspace:字面意思是工作空間,其實(shí)就是暫存所有運(yùn)行結(jié)果的地方,“暫”的具體含義是:關(guān)閉matlab后丟失
2.軟件中的基本概念
2.1 函數(shù)
matlab之所以強(qiáng)大,就是因?yàn)樘峁┐罅康暮瘮?shù),你也可以建立自定義函數(shù),方法是:Home-gtNew-gtfunction。自定義函數(shù)一般保存在工作路徑下。函數(shù)文件的特征是:擴(kuò)展名m,內(nèi)容的第一行以function開頭,后續(xù)內(nèi)容是“輸出變量函數(shù)名(輸入變量)”。且函數(shù)名和文件名相同。
每個(gè)函數(shù)在Command Window中運(yùn)行,用來完成特定的計(jì)算任務(wù),運(yùn)行是輸入“輸出變量函數(shù)名(輸入變量)”,然后按回車。例如有個(gè)系統(tǒng)自帶的函數(shù)是用來求絕對(duì)值的,函數(shù)名abs,所以在Command Window里輸入“aabs(-1)”,就會(huì)顯示運(yùn)算結(jié)果為“a1”。且運(yùn)算結(jié)果會(huì)在Workspace里出現(xiàn)一個(gè)變量a,雙擊后可看到a的值是1。
2.2 腳本
可以理解為特殊的函數(shù),這種函數(shù)內(nèi)容的開頭沒有function那行,因此沒有輸入、輸出變量,也沒有函數(shù)名。文件擴(kuò)展名和函數(shù)一樣是m,也需要在Command Window里運(yùn)行。腳本都是用戶建立的,方法是:Home-gtNew Script。一般保存在工作路徑下。腳本的功能就是完成用戶需要的、復(fù)雜的計(jì)算任務(wù),通常腳本里會(huì)調(diào)用很多函數(shù)。
2.3 GUI
一般翻譯為界面,就是人機(jī)交互界面的意思。寫腳本處理問題的方法有點(diǎn)麻煩,讓人看起來更像是碼農(nóng),所以現(xiàn)在很多問題可以通過界面點(diǎn)點(diǎn)鼠標(biāo)解決。這時(shí)候就需要打開界面,打開方法是:在APPS標(biāo)簽里可以找到所有已安裝的GUI工具,單擊即可。注意右邊有個(gè)小三角可以點(diǎn)開。和函數(shù)一樣,用戶也可以自己建立自定義GUI,這部分較為復(fù)雜,對(duì)新手而言有點(diǎn)遙遠(yuǎn)。
2.4 toolbox
一般翻譯成工具箱,matlab將功能相近或者應(yīng)用上自成體系的一組函數(shù)和GUI打包成一個(gè)toolbox。正版的matlab在購(gòu)買時(shí),幾乎每一個(gè)toolbox都是要單獨(dú)收費(fèi)的,所以toolbox也可以理解為matlab產(chǎn)品的模塊,一個(gè)工具箱就是一個(gè)產(chǎn)品/商品。
2.5 simulink
一般用matlab解決問題的過程是:用戶自定義腳本,在Command Window里運(yùn)行腳本。而腳本的運(yùn)行邏輯是順序執(zhí)行,和一般的編程一樣。simulink則提供另一種思路,圖形化編程,有點(diǎn)像labview,這種方法很適合于物理模型的仿真,因此有時(shí)用“matlab編程”和“simulink仿真”強(qiáng)調(diào)。使用方法是在home標(biāo)簽下點(diǎn)擊simulink。
3.獲得幫助
常用的獲得幫助有四種方法
①home標(biāo)簽里,有個(gè)Help標(biāo)志,點(diǎn)開后可以獲得各工具箱/產(chǎn)品的完整幫助文檔。新版本中默認(rèn)使用在線,改用本地幫助的辦法是在home標(biāo)簽里,Preferences下的matlab/Help里選擇installed locally
②官網(wǎng)上找到支持,然后可以獲得教程。這種方法獲得的幫助文檔和第一種方法一樣。
③在Command Window里輸入 doc 函數(shù)名 來獲得幫助。比如輸入#34doc fft#34可以獲得離散傅里葉變換函數(shù)fft的幫助和范例。這種方法獲得的文檔是前兩種方法文檔中的部分。當(dāng)然,前提是你要知道函數(shù)名,才能找到幫助。這種方法適合于獲得系統(tǒng)自帶函數(shù)的使用說明。
④使用GUI時(shí),通常界面的角落里有Help,點(diǎn)開可以獲得幫助。這種方法獲得的文檔是第一和第二種方法文檔中的部分。這種方法適合于獲得系統(tǒng)自帶GUI的使用說明。
這幾種方法中,最常用的是第三種,只要知道自己需要的函數(shù)名,就可以用這種獲得說明和范例。而實(shí)際使用中,一般常用的系統(tǒng)自帶函數(shù),也并不是非常多,大概幾十個(gè)?真正需要牢記使用方法的可能就幾個(gè),通常都是知道函數(shù)名,要用的時(shí)候doc一下。