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

2021-09-21 02:42:11 字數 2734 閱讀 7744

主要內容包括:

矩陣的多種運算方法matlab實現

計算矩陣的秩、特徵值及其對應的特徵向量

利用矩陣操作求解線性方程組

數值微積分

1、矩陣的結構變換

轉置:    a'   a.'(非共軛轉置)

對稱變換:利用指令flipud()和fliplr()

a=flipud(b) %上下方向翻轉矩陣。如果是列向量,返回相反順序的向量;如果是行向量,則返回原向量

a=fliplr(b) %水平方向翻轉矩陣。如果是行向量,返回相反順序的向量;如果是列向量,則返回列向量

a=flipdim(a,dim) %返回指定維翻轉矩陣。若dim=1,則以行方向翻轉;dim=2,則:以列方向翻轉

triu(a,k) %當k=0/不寫時(k預設時預設為0), 提取主對角線及其上方的元素。當k>0時,提取矩陣a主對角線上方的第k條對角線以上的元素。k<0時,提取矩陣a的主對角線下方第-k條對角線以上的元素。

tril(a,k) %當k=0/不寫時(k預設時預設為0),提取主對角線及其以下的元素。其中k>0時,提取矩陣a主對角線上方的第k條對角線以下的元素。k>0時,提取矩陣a的主對角線下方第-k條對角線以下的元素。

例如:% example 1

>> b=[1,2,3;4,5,6;7,8,9;10,11,12];

>> triu(b)

ans =

1 2 3

0 5 6

0 0 9

0 0 0

% example 2

>> a=[1,2,3;4,5,6;7,8,9];

>> tril(a)

ans =

1 0 0

4 5 0

7 8 9

2、矩陣分析(包括求矩陣的秩、矩陣對應的行列式和矩陣的逆等運算)

rank(a)     %求矩陣a的秩

rref(a) %求矩陣a的行階梯矩陣

det(a) %計算方陣a的行列式

inv(a) %求方陣a的逆矩陣

%%求偽逆矩陣的函式為pinv()

3、矩陣的特徵值分析

[v,d]=eig(a)  % d是a的特徵值,v是對應於d的特徵向量,若函式只有乙個輸出宗量,則只給出特徵值
4、線性方程組求解

% 方程組 ax=b,其解為:

x=(a的逆)xb 即x=inv(a)*b / x=a\b

5、解方程組

% matlab還提供了函式null()用來求解齊次線性方程組解空間的一組基(即基礎解系),格式如下:

x=null(a,'r')

%

當已知函式的表示式時,理論上可以通過公式進行微積分計算。但在實際應用中,往往需要處理的物件

並不能通過公式來進行計算。因此,有必要介紹這些函式的微分和積分的數值演算法。

1、差分與偏導

% 差分=f(x+h)-f(x),若h>0,則稱為向前差分;若h<0,則稱為向後差分。

% 在matlab中,計算差分的指令是diff(),呼叫格式為:

% dx=diff(a,n,dim) %計算矩陣a的n階差分。dim=1時,按列計算差分;dim=2時,按行計算差分

例如:clear

clcdh=pi/10;

h=0:dh:pi;

x=cos(h).*exp(h); % 對應每個元素做相應的運算。如果不加上點,則是矩陣的運算

dxdt_diff=diff(x)/dh % way one

dxdt_grad=gradient(x,dh) % way two

% 結果為:

dxdt_diff =

1 至 8 列

0.9616 0.6824 -0.0255 -1.3455 -3.4561 -6.4783 -10.3924 -14.9207

9 至 10 列

-19.3763 -22.4915

dxdt_grad =

1 至 8 列

0.9616 0.8220 0.3284 -0.6855 -2.4008 -4.9672 -8.4353 -12.6565

9 至 11 列

-17.1485 -20.9339 -22.4915

2、數值積分

1、一重積分

[l,n]=quad(fun,a,b,tol) %它

[l,n]=quadl(fun,a,b,tol)

%st=trapz(x,y)

%2、二重積分

s=dblquad(fun,xmin,xmax,ymin,ymax.tol)

s=triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)

%

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

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

MATLAB數值計算 0

目錄format 表示格式 help format 可以查詢format幫助 format short 把輸出的格式改為預設設定 format rat 顯示為分數 format long e 顯示長精確度並用科學計數法 format long 並沒有重計算,把顯示數字的有效位5 15位 format...

Matlab 數值計算泰勒公式

1.利用n階泰勒多項式展開來估算函式f x e x在指定點x處的近似值。要求絕對誤差在最大階數maxn以內達到給定精度eps。taylorcal函式 function taylorcal eps 0.00001 maxn 20 x input 儲存輸入的浮點數 向量 f1 zeros 1,lengt...