匿名函式可以非常方便的表示所求的方程,並供fzero等求解函式呼叫。
例1 求解下列方程的根
$$f(x)=\^+x^}+x^a=100$$
求解**如下
f=@(x)exp(x)+x^2+x^(sqrt(x))-100
f = 包含以下值的 function_handle:
@(x)exp(x)+x^2+x^(sqrt(x))-100
>> format long
>> x0=fzero(f,3)
x0 =
4.163549956946139
>> f(x0)
ans =
2.842170943040401e-14
又上例可以看出,匿名函式在表達方程方面很簡潔。上例沒有引數,如果方程有引數而且要求對不同的引數一一求解方程相應的根
例1-1續
對於a=[0,0.01,0.02,…,2],求下列方程相應的x值,並畫出a和相應的x的影象。
f=@(a)@(x)exp(x)+x^a+x^(sqrt(x))-100;%建構函式控制代碼
format long
aa=0:0.01:2;
plot(aa,arrayfun(@(a) fzero(f(a),4),aa),'*-')%利用arrayfun求解不同的a對應的x
xlabel('$a$','interpreter','latex','fontsize',15)%標註x、y座標軸,按照latex語法
ylabel('$x$','interpreter','latex','fontsize',15)
title('$\mathrm^+x^}+x^a-100$','interpreter','latex',...
'fontsize',15)
生成的圖形如圖所示
MATLAB匿名函式的應用4
有時候需要推導一些表示式,而對得到的表示式進行諸如求值 積分或者極值的運算。如果表示式不是很複雜的話,可以手動推導。但是很多時候手動推導非常煩瑣甚至根本不可能,這時候就要借助計算機來推導。在得到表示式後,再將其轉化成匿名函式,從而方便的進行後續例1求下面函式三階導數在 0,1 的影象。本例如果用手動...
MATLAB匿名函式
fhandle arglist expr其中,expr是具體的函式表示式,arglist是指定的函式自變數。具體請見下面示例 f x x.2 fx f 1 10 fx 1 4 9 16 25 36 49 64 81 100 g x,y x.2 y.2 gxy g 1 10,2 11 gxy 5 13...
matlab匿名函式
匿名函式 匿名函式 什麼是匿名函式?匿名函式是不儲存在程式檔案中 但與資料型別是 function handle 的變數相關的函式。匿名函式可以接受輸入並返回輸出,就像標準函式一樣。但是,它們可能只包含乙個可執行語句。例如,建立用於計算平方數的匿名函式的控制代碼 sqr x x.2 變數 sqr 是...