符號函數的極限
求符號函數極限的命令為limit ,其調用格式為:limit(f,x,a)即求函數f關於變量x在a點的極限。對於 limit函數,還有另一種調用格式,用來求單邊極限:limit(f,x,a,『right』)右極限;limit(f,x,a,『left』)左極限
例、求當n趨於無窮時,(1+1/n)^n的值。
>> syms n;
>> g=(1+1/n)^n;
>> limit(g,n,inf)
ans =
exp(1)
exp(1)即自然常數1。
上述的方法可以用來解決函數極限相關的問題,一般在研究相關問題時,可以做出函數的圖像,更直觀的反應出極限值。
例、求當x趨於0時,函數y=sin(x^2)exp(x)的值,並會出相應圖像觀察。
exp(x)表示e^x.
例子與代碼來源於
https://jingyan.baidu.com/article/d621e8da4a4d592864913f6f.html)
syms x
y=sin(x^2)*exp(x);
limy=limit(y,x,0)
plot([-2:0.01:2],subs(y,x,[-2:0.01:2]),'r','LineWidth',2);hold on
plot(xlim,double(limy)*[1,1],'k--')
註:關於subs函數,其作用是將符號表達式中的某些符號變量替換為指定的新的變量,在此處不多做講解,具體可參考這篇文章:
https://blog.csdn.net/guyuealian/article/details/53997490
符號函數的積分
函數積分主要分為定積分和不定積分兩類,matlab也有對應函數求解積分問題。
不定積分:int(f,x)即求函數f對變量x的不定積分
定積分:int(f,x,a,b)其中,a、b分別表示定積分的下限和上限。
註:當函數f關於變量x在閉區間[a,b] 可積時,函數返回一個定積分結果;當a、b中有一個是inf時,函數返回一個廣義積分;當a、b中有一個符號表達式時,函數返回一個符號函數。
本節講述的三個函數用法都比較簡單,但涉及到實際問題時,可能需要從多方面思考,下面的例子是一個比較綜合的例子(涉及到曲線擬合、繪圖、函數微分的知識),希望對讀者有所幫助。
例、根據實際測量,得到河流某處寬 600m ,其橫截面不同位置某一時刻的水深如下表所示。
(1)若此刻水流的流速為 0.6m/s ,試估計該河流此刻的流量。
(2)已知x方向 [50,60] 區間為坡式護岸的下部護腳部分,根據相關堤防設計規範,拋石護岸護腳坡度應緩於 1:1.5 (正切值),請估計水流衝刷是否已破壞該區域的護腳。
分析(1):由於題設並沒有給出河寬與水深的函數關係,而只給出了一些相關數據,因此,首先要擬合出河床曲線,依據擬合函數,然後進行定積分,計算出河流橫截面,即可估計流量。
>> xi=0:50:600;
yi=[4.4,4.5,4.6,4.8,4.9,5.1,5.4,5.2,5.5,5.2,4.9,4.8,4.7];
p=polyfit(xi,yi,3);
plot(xi,yi,'o',xi,polyval(p,xi));
syms y x;
y=poly2sym(p,x);
s=int(y,x,0,600);
v=s*0.6;
eval(v)
ans =
1.7874e+03
註:函數polyfit與polyval都在之前的的推文中講過,有需要者可以參考之前的推文「Matlab多項式計算」和「數學建模與MATLAB–插值與擬合」,對於poly2sym,該函數是把係數組轉換成符號多項式,因為用polyfit擬合後,返回值是一個係數組。
>> xi=0:50:600;
yi=[4.4,4.5,4.6,4.8,4.9,5.1,5.4,5.2,5.5,5.2,4.9,4.8,4.7];
yn=-yi;
p=polyfit(xi,yn,3);
plot(xi,yn,'o',xi,polyval(p,xi));
syms y x yii;
y=poly2sym(p,x);
yii=diff(y,x);
x=50:60;
eval(yii)
ans =
-0.0031 -0.0031 -0.0031 -0.0031 -0.0031 -0.0032 -0.0032 -0.0032 -0.0032 -0.0032 -0.0032
可以看出,範圍內的導數全都全都小於1:1.5,即水流衝刷還沒有破壞該區域的護腳。
本節內容就到此結束,下節將推出如何用matlab處理一些級數相關的數學問題,敬請期待!
關於MATLAB的學習:
大家可以關注我們的知乎專欄——數據可視化和數據分析中matlab的使用:
https://zhuanlan.zhihu.com/c_1131568134137692160
歡迎大家加入我們的MATLAB學習交流群:
953314432