如何在MATLAB中使用功能函數(shù)
在MATLAB中,有一些函數(shù)可以接受函數(shù)句柄作為參數(shù),并基于另一個(gè)函數(shù)的運(yùn)行結(jié)果進(jìn)行操作。這種函數(shù)被稱為“接受函數(shù)句柄的函數(shù)”。這樣的函數(shù)可以用于各種任務(wù),包括找零、優(yōu)化、求積和解常微分方程等。 定
在MATLAB中,有一些函數(shù)可以接受函數(shù)句柄作為參數(shù),并基于另一個(gè)函數(shù)的運(yùn)行結(jié)果進(jìn)行操作。這種函數(shù)被稱為“接受函數(shù)句柄的函數(shù)”。這樣的函數(shù)可以用于各種任務(wù),包括找零、優(yōu)化、求積和解常微分方程等。
定義非線性函數(shù)
MATLAB通過定義非線性函數(shù)的文件來表示非線性函數(shù)。例如,以下是MATLAB中的一個(gè)簡化版本的函數(shù)文件:
function y humps(x)
y 1./((x-.3).^2 .01) 1./((x-.9).^2 .04) - 6;
end
計(jì)算函數(shù)值
可以使用以下命令在指定區(qū)間內(nèi)計(jì)算該函數(shù)在一組點(diǎn)上的值:
x 0:.002:1;
y humps(x);
繪制函數(shù)圖形
可以使用以下命令繪制該函數(shù)的圖形:
plot(x, y)
從圖形可以看出,在x0.6附近存在一個(gè)局部極小值。函數(shù)fminsearch可以用于尋找此函數(shù)的最小值,即在達(dá)到最小值時(shí)的x值。fminsearch的第一個(gè)參數(shù)是函數(shù)句柄,表示達(dá)到最小值時(shí)的函數(shù),第二個(gè)參數(shù)是猜測的最小值的初始位置:
p fminsearch(@humps, 0.5)
求積和積分
MATLAB提供了一些用于數(shù)值積分的函數(shù),如quad和quadl??梢允褂靡韵抡Z句計(jì)算上述函數(shù)曲線下面的面積:
Q quadl(@humps, 0, 1)
搜索零點(diǎn)
如果想在該區(qū)間內(nèi)尋找函數(shù)的零點(diǎn),可以使用fzero函數(shù),例如:
z fzero(@humps, 0.5)
結(jié)果表明在此區(qū)間外存在一個(gè)零點(diǎn)。