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