MATLAB求函數零點與極值


1.      roots函數

針對多項式求零點(詳見MATLAB多項式及多項式擬合)


2.      fzero函數

返回一元函數在某個區間內的的零點.

x0 = fzero(@(x)x.^2-3*x-4,[1,5]);

只能求區間里面的一個零點,並且要求在給定區間端點函數值異號,所以使用之前應該先作圖,得出單個零點分布的區間,然后使用該函數求零點.若有多個零點,則需多次使用該函數.

如需求上例中的全部零點,先作圖

fplot(@(x)x.^2-3*x-4,[-10,10]);

得知兩個零點的分布區間,然后兩次使用fzero函數求對應區間的零點.

x1 = fzero(@(x)x.^2-3*x-4,[-2,0]);

x2 = fzero(@(x)x.^2-3*x-4,[2,6]);


3.      solve函數

求一元函數(方程)的零點.

x0 = solve('x^2-3*x-4=0','x');

注意方程需包含’=0’部分,另外,不建議直接將方程寫在函數solve的參數部分,可以用符號運算的方法.


4.      fminbnd函數

求一元函數在某個區間內的最小值和對應的最小值點.

[x0,fmin]=fminbnd(@(x)x+1/(x+1),-0.5,2);

求極值與極值點之前須估計極值點的區間,保證在該區間沒有使得函數值趨於無窮的點.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM