MATLAB S3數值運算

2021-10-23 15:16:38 字數 3948 閱讀 8834

3.2 矩陣

3.3 多項式

3.4 複數和複數運算

matlab的兩種基本數值運算方式:矩陣和多項式

【本章要點】

向量就是等價於一維陣列。

>>m1=[1 2 3 4 5 6]

>>m1 =[1;2;3]

>>m2 =[1:6]

>>m3 = linspace(1,6,6)

>>m4 = logsapce(1,2,5)

向量的基本運算

向量可以與常數,與向量做加減乘除。對維度有要求向量的點積運算–dot

dot(m1,m2) % 用來求點積

向量的叉積運算—cros函式進行叉積運算

維度至少有乙個為3向量的混合積運算

混合積的運算通過dot和cross函式一起來完成。

dot(m1,cross(m2,m3))

矩陣時線性代數的基本運算單元。通常是含有m行和n列的矩形結構。

矩陣主要分為三類:數值矩陣(數值矩陣和複數矩陣)、符號矩陣和特殊矩陣。

matrixname(m.n) % 引用矩陣裡的某一元素

矩陣的轉置:行變成列;

【例子】

m = magic(3);

m;m' % 求轉置

矩陣的逆:相乘為單位矩陣

函式命令:inv;不是所有的矩陣都能求出逆矩陣。矩陣必須是方陣

m=[1 2 0; 2 5 -1 ;4 10 -1]

g=inv(m) % 求解矩陣的逆矩陣

矩陣的行列式

函式命令:det; 呼叫格式:det(m)

m=magic(3)

det(m)

矩陣的秩:求到底幾個是基本的

函式命令:rank 呼叫格式:rank(m)

m=magic(3)

rank(m)

矩陣的特徵值分解

函式命令:eig 呼叫格式:eig(m):返回矩陣的特徵值,並以向量形式存放

線性方程組唯一解或特解的解法

運算規則:x是方程組ax=b的解,其中,a為係數矩陣,b為已知項矩陣的轉置。

兩種方法:x = a\b x =inv(a) * b

【例子】

% 左除法

>>a=[1,-3;1,-1]; b=[1;19];

>>x=a\b

x =

28 9

% 求逆法

>>x = inv(a)*b

x = 28

9

齊次線性方程組通解的解法

函式命令:null 呼叫格式:null(m),null(m,『r』)

函式功能:函式null用來求解零空間,即滿足ax=0的解空間,實際上是求出解空間的基礎解系,用於獲得齊次線性方程組的通解。

>>a=[1,-3,-1;1,-1,-19]

a= 1 -3 -1

1 -1 -19

>>z=null(a)

z= 0.9515

0.3058

0.0340

>>z=null(a,'r')

z= 28

9 1

非齊次線性方程組通解的解法

% 求解非齊次線性方程通解

>>a=[1 1 -3 -1; 3 -1 -3 4;1 5 -9 -8]

>>b = [1 4 0]'

>>d = [a b]

>>n=4;

>>ra = rank(a)

ra>>rd=rank(d)

rd>>fromat rat % 這哥語句是什麼意思?沒有看懂

>>if ra==rd & ra==n % 判斷是否有唯一解

x=a\b

elseif ra==rd & ra【法二】rref解法

函式命令:rref 呼叫格式rref([a b])

>>a = [4 8 -6 2; 1 3 9 5; 5 11 3 7; 3 5 -15 -31] %建立線性方程組

a>>b = [1 2 3 -1]'

b>>d=[a b]

d>>m=rref(d) %使用rref方法求解

m

怎麼解釋m的值的意義,這方面是線性代數的應用

在matlab中,多項式用行向量表示:p=[a0 a1 a2 a3 … an],約定多項式以降冪的形式出現。

【示例】

% 從第三章的多項式開始進入**實踐階段

%% 3.3 多項式

% 多項式的構造

a=[1 2 -3 -4];

pa=poly(a);

paps=poly2sym(pa)

%% 多項式的運算

% 1 多項式的加減運算,用行向量表示

px=[1 4 -7 -22 24];

py=[1 -1];

pz=px + [0 0 0 py];

pzpoly2sym(pz)

ps=px-[0 0 0 py]

poly2sym(ps)

% 2 多項式的乘法 函式命令conv 呼叫格式conv(px,py)

% 函式功能得到多項式px和py的乘積

px=[1 4 -7 -22 24];

py=[1 -1];

ps=conv(px,py);

ps% 多項式的除法 函式命令:deconv 呼叫格式:deconv(px,py)

% 結果包括多項式div和餘數多項式rest

px=[1 4 -7 -22 24];

py=[1 -1];

pz=deconv(px,py)

poly2sym(pz)

% 多項式微分 函式命令:polyder 呼叫格式:polyder(px)

px=[1 4 -7 -22 24];

poly2sym(px)

polyder(px)

% 多項式求根 函式命令:roots 呼叫格式:roots(px)

px=[1 4 -7 -22 24]

roots(px)

% 多項式求值 函式命令:polyval,polyvalm 呼叫格式:polyval(px,a),polyvalm(px,m)

% 函式功能是:求出當多項式中的變數為某個指定值a時該 多項式的值;而m是指定某個矩陣m時的值

px=[1 4 -7 -22 24]

polyval(px,2)

復變函式:複數以及在其基礎上發展起來的復變函式分支,解決了許多實數運算無法解決的問題。

復變函式是控制工程的數學基礎,matlab支援在運算和函式中使用複數或複數矩陣,還支援復變函式運算。

%% 3.4 複數和複數運算

% matlab使用i或者j來代表虛部複數運算,乙個複數可以表示為:x=a+bj,其中a稱為實部,b稱為虛部。

% 1. 構造複數和複數矩陣

x=1+2i;

xm=[1+2i 3-4i;2-3i 1-i];

m%% 2. 複數相關運算函式

% 對於複數x=a+bi,matlab提供了非常豐富的函式來了解負數的實部、虛部、模和輻角等

% 複數的基本運算包括加、減、乘、除可以參考實數的運算函式或運算符號

% abs:求複數或複數矩陣的模 angle:求複數或複數矩陣的相位角,單位為弧度

x=1-2i;

y=1+3i;

x+yx-y

x*yx/y

x\yreal(x)

imag(x)

conj(x)

abs(x)

angle(x)

angle(x)

Flex數值運算

專案中用到的,留存一下 需求很簡單就是把分鐘轉換成多少小時多少分,主要用到除法和求餘 這是正確的 沒有問題。但我們若是用number觸發,在fb種可能會遇到一些問題,在http bbs.9ria.com viewthread.php?tid 22270 page 1的例子中 package 先普及一...

shell數值運算

原文 1 錯誤方法舉例 a var 1 1 echo var 輸出的結果是1 1,悲劇,呵呵 b var 1 var var 1 echo var 輸出結果是1 1,依然悲劇,呵呵 2 正確方法 1 使用let var 1 let var 1 echo var 輸出結果為2,這次沒有悲劇 注意 a ...

linux shell數值運算

1 bc命令 1直接進入其命令列執行 bc q 回車 2寫個檔案一起執行 bc q bc test.bc 純文字 3直接在shell中管道符交由bc執行數 算 echo 2 3 bc 4可處理進製轉換,設定精度 2 expr命令 可以是數字或者字串 3let 命令 4 expr 5 a 這種自加操作...