MATLAB學習筆記(七) 數值求導和積分

2021-09-18 02:30:18 字數 1595 閱讀 7333

diff(x) 計算相鄰元素的一階查分

梯度的本意是乙個向量(向量),表示某一函式在該點處的方向導數沿著該方向取得最大值,即函式在該點處沿著該方向(此梯度的方向)變化最快,變化率最大(為該梯度的模)。

梯度不等同於查分,梯度可以理解為導數的向量

fx = gradient(f) 返回f的一位梯度,f是乙個向量

[fx,fy] = gradient(f) 返回f的二維梯度

gradient(f,h) h指定各個方向上的點距(點距大的話,得出來的梯度就會變小)

使用自適應simpson方法計算積分,精度高 常用,

q = quad(fun, a, b) 計算a,b區間內的數值積分

quad(fun, a, b, tol)用指定絕對誤差代替預設誤差

[q,fcnt] = quad(fun, a, b)返回的fcnt是計算次數

計算∫ 02

1x3−

2x−5

dx

\int_^\fracdx

∫02​x3

−2x−

51​d

x 在myfun.m中

function y = myfun(x)

y = 1./(x.^3-2*x-5);

呼叫

>> q = quad(@myfun,0,2)

q = -0.4605

使用自適應lobatto方法計算積分,特點精度高,最為常用

方法同上

通過梯形法求積分,精度低,速度快

t = trapz(y) 若y為向量為向量y積分,若是矩陣,每一列積分

rapz(x,y) 用梯形法計算y在x的積分

計算∫ oπ

sin(

x)dx

\int_o^\pi

∫oπ​si

n(x)

dx

>> x = 0:pi/100:pi;

>> y = sin(x);

>> z = trapz(x,y)

z = 1.9998

q = dblqual(fun,xmin,xmax,ymin,ymax)

q = triplequal(fun,xmin,xmax,ymin,ymax,zmin,zmax)

例:計算∫−1

1∫01

∫0πy

sin(

x)+z

cos(

x)dx

dydz

\int_^1\int_^\int_^ysin(x)+zcos(x)dxdydz

∫−11​∫

01​∫

0π​y

sin(

x)+z

cos(

x)dx

dydz

function z = integrnd3(x,y,z)

z = y*sin(x)+z*cos(x)

>> q = triplequad(@integrnd3,0,pi,0,1,-1,1)

>q =

2.0000

MATLAB學習筆記(七)

1 標量之間比較 x 5 y 1 x y ans 0 2 矩陣之間比較 x 1 5 y x 4 x y ans 0 0 0 0 0 3 邏輯運算子包括 與 非 或 xor 亦或 x 1 5 y 2,0,2,4,6 z 8,8,8,8,8 z x z y ans 1 1 1 1 1 注意運算子的優先順...

MATLAB學習筆記(三) 數值計算

主要內容包括 矩陣的多種運算方法matlab實現 計算矩陣的秩 特徵值及其對應的特徵向量 利用矩陣操作求解線性方程組 數值微積分 1 矩陣的結構變換 轉置 a a.非共軛轉置 對稱變換 利用指令flipud 和fliplr a flipud b 上下方向翻轉矩陣。如果是列向量,返回相反順序的向量 如...

Matlab學習筆記(三) 數值計算

3.1.1 行列式 逆和秩 3.1.2 特徵值和特徵向量的求取 3.2.1 基本分析函式 sum函式 用於求矩陣列矩陣元素或向量的和 b sum a 若a為向量,則返回所有元素的和 如a為矩陣,則返回其他各列所有元素和 b sum a,dim 返回a中第dim維的所有元素和 cumsum函式 用於求...