MATLAB基础教程(9)——高级积分运算、二重积分
目錄
復習定積分(單變量)
二重積分
今日小結
復習定積分(單變量)
在之前,先復習一下之前學習的內容。使用matlab求解定積分的步驟大概如下:
我們都知道:定積分是求解一個圖形與坐標軸圍成的面積。而今天我們需要深入理解一下:定積分是求解兩條曲線之間圍成的面積,如果只有一個公式,比如x,我們可以理解成 x-0,y=x 這個函數減去了 y=0這個常數函數,或者說,上面函數與x軸圍成的面積減去了下面函數與x軸圍成的面積(并且這個面積在x軸上方是正的,下方是負的),這樣我們就可以推廣,假設我們現在有兩條曲線,一個是sinx,一個是?,我們求在0-pi的范圍內,兩個圖形圍成的面積,容易知道,兩個圖形大概是這樣圍起來的:
PS: 上圖的代碼和講解如下
%% 目標圖像clc;clear all; % 清除原先的東西x = 0:0.01:pi; % x的范圍是0-pi,以0.01為一個小分割點細分出一個范圍y1 = sin(x); % sinxy2 = exp(x); % e^xfigure; % 弄一個figure的框體hold on; % 保持這個窗體,保證后面的內容都畫在了上面,hold off解除subplot(221); % 開辟子窗體,221:共2行2列,里面的第一個fill(x,y1,'r'); % 畫圖并填充顏色,變量是x,函數是y1,顏色是r,紅色title('y=sinx');% 設置標題,必需先fill,才能添加標題,否則會失敗subplot(222); % 開辟子窗體,222,共2行2列,里面第二個fill(x,y2,'b'); % b 藍色title('y=e^x');subplot(223); % 開辟子窗體,223,共2行2列,里面第三個fill([x, fliplr(x)],[y1,fliplr(y2)],'g');% 兩個函數直接填充顏色,每一個方括號代表一個函數的內容title('兩個函數中間的部分');hold off;OK,那么我們就可以很容易的使用int()函數算出這樣一個定積分,代碼如下:
%% 對上面的函數進行計算定積分syms x;f = 'exp(x) - sin(x)';res_int = int(f, x, 0, pi);disp(res_int);上面左邊是我手算結果,右邊是matlab計算結果,可見我算的還是很準的哈哈哈哈哈哈哈。
二重積分
上面復習了定積分的計算和一般概念,下面我們看二重積分,先了解下二重積分是什么吧:
二重積分的一個概念是求體積(還有其他的,比如薄片質量等,在這里先不談,先說體積的問題),那么明確概念其實就不難了,定積分求面積、二重積分求體積,那么這個體積是哪里的體積呢?
如圖,粉紅色的是z=f(x,y)的函數圖像,下面是地面的陰影部分,紅色的是邊界,這個體積就是粉色的頂部與底面陰影之間的一個曲頂柱體的體積,那這個體積怎么求呢?
在定積分中,我們把整個面積分成了無數個小面積,計算后累加,同樣的,在二重積分中,我們也采取同樣的方法,我們把這個柱體切成一個一個的小柱體,就像圖中的那個黃色柱體一樣,假設我們把整個底面分成了無數份,每一份的底面積都無限接近于0,假設這個底面積是d?,那么這個地方的高就是f(x,y),所以這個小柱體的體積就是 f(x,y)d?,我們只需要將這些小體積全部加起來,就能得到整個曲頂柱體的體積公式了:
??
并且我們很容易發現,積分的區間其實就是底面,被積函數是曲面的公式。公式中各個符號在下圖中體現:
現在,計算一個例子給大家看,假設底面如圖所示(灰色陰影部分):
先積分x(Y型)時區域可表示為:Dx = {(x,y)|0<=y<=1, y<=x<=1}。
先積分y(X型)時區域可表示為:Dy =?{(x,y)|0<=y<=x, 0<=x<=1}。
下面我們以X型為例,使用matlab計算曲面為 f(x,y) = xcos(y)的曲頂柱體的體積:
詳細的代碼以及注釋見下方:
%% 計算二重積分clear all;f = @(x,y)x.*cos(y); % 定義一個函數句柄,兩個變量分別是x,y% 這樣定義函數句柄時,需要在所有的運算前加一個.(表示對應元素各自計算,不按照矩陣的規則)ymax = @(x) x; % 根據0<=y<=x處,右方的y=x反解出y,res = integral2(f,0,1,0,ymax);% 計算二重積分的函數% integral2(fun, xmin, xmax, ymin, ymax)disp(res);最后,讓我們欣賞一下這個曲面的形狀吧:
代碼如下:
%% 看一看這個曲面吧[x,y] = meshgrid(0:0.001:1, 0:0.001:1);% 設置x和y的區間,以及細分程度z = (x.*cos(y)); % 使用一個z來代表這個函數mesh(x,y,z) % 畫出二維曲面圖像title('x*cos(y)')那么,今天就先到這里吧,三重積分留到下次在講解,謝謝觀看!
今日小結
今天我們學到了如下的知識:
總結
以上是生活随笔為你收集整理的MATLAB基础教程(9)——高级积分运算、二重积分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: groovy java_在java中使用
- 下一篇: jpane1_IDEA插件开发,Jpan