Matlab | Matlab從入門到放棄(13)——非線性函數的運算

博主github:https://github.com/MichaelBeechan
博主CSDN:https://blog.csdn.net/u011344545
代碼下載:https://github.com/MichaelBeechan/Matlab-From-Zero-To-One

%% Time:2019.6.8
%% Function:非線性函數的運算

%% 函數句柄
%% 功能函數

%% 函數句柄
% 在 MATLAB 中,使用 at 符號 @ 在函數名稱前面構造函數句柄

fhandle = @sin;

% 您可以按照使用函數名稱調用函數的相同方式,通過函數句柄來調用函數
% fhandle(arg1, arg2, …);
%{
下面顯示的函數 plot_fhandle 接收函數句柄和數據,使用函數句柄生成 y 軸數據,並對數據繪圖:

function plot_fhandle(fhandle, data)
plot(data, fhandle(data))

當調用帶有如下 sin 函數的句柄和參數的 plot_fhandle 時,得到的計算結果會生成正弦波圖:

plot_fhandle(@sin, -pi:0.01:pi)
%}

%% 功能函數
%{
名爲“接受函數句柄的函數”的函數類與標量變量的非線性函數配合使用。
也就是說,某個函數基於另一個函數運行。接受函數句柄的函數包括
找零
優化
正交
常微分方程
%}
humps.m

function y = humps(x)
y = 1./((x-.3).^2 + .01) + 1./((x-.9).^2 + .04) - 6;
x = 0:.002:1;
y = humps(x);
plot(x,y)

在這裏插入圖片描述
% 函數 fminsearch 會求最小值

p = fminsearch(@humps,.5) 
humps(p)

% 數值分析採用術語正交和積分來區別定積分的近似數值和常微分方程的數值積分

Q = quadl(@humps,0,1)
z = fzero(@humps,.5)
發佈了125 篇原創文章 · 獲贊 113 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章