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 這種自加操作...