從零開始學MATLAB(七) MATLAB符號計算

2021-10-03 12:35:17 字數 3625 閱讀 5765

(1)符號物件的建立

①sym函式:sym函式用於建立單個符號物件,其常用呼叫格式為:符號物件名=sym(a),將由a來建立符號物件。其中,a可以是乙個數值常量、數值矩陣或數值表示式(不加單引號),此時符號物件為乙個符號常量;a也可以是乙個變數名(加單引號),這時符號物件為乙個符號變數。

(符號計算的結果是乙個精確的數學表示式;數值計算的結果是乙個數值。)

②syms命令

syms命令可以一次定義多個符號變數,其一般呼叫格式如下:syms 符號變數名1 符號變數名2 … 符號變數名n

其中,變數名不能加單引號,相互之間用空格隔開。

(2)符號物件的運算

①四則運算:用+、-、*、/、^運算子實現,其運算結果依然是乙個符號表示式。

②關係運算:

6種關係運算子:<、<=、>、>=、==、~=

對應的6個函式:lt()、le()、gt()、ge()、eq()、ne()

若參與運算的是符號表示式,其結果是乙個符號關係表示式;若參與運算的是符號矩陣,其結果是由符號關係表示式組成的矩陣。

在進行符號物件的運算前,可用assume函式對符號物件設定值域,函式呼叫格式為:assume(condition)

assume(expr,set)第一種格式指定變數滿足條件condition,第二種格式指定表示式expr屬於集合set。

③邏輯運算:

3種邏輯運算子:&(與)、|(或)、~(非)

4個邏輯運算函式:and()、or()、not()、xor()(異或)

④因式分解與展開運算

matlab提供了對符號表示式進行因式分解、展開、合併的函式,函式的呼叫格式為:

對符號表示式s分解因式:factors(s)

對符號表示式s進行展開:sxpand(s)

對符號表示式s合併同類項:collect(s)

對符號表示式s按變數v合併同類項:collect(s,v)

⑤其他運算

提取有理分式的分子分母:[n,d]=numden(s)

提取符號表示式的係數:c=coeffs(s,x)

符號表示式化簡:simplify(s)

符號多項式與多項式係數向量之間的轉換:

符號多項式轉換為多項式係數向量:p=sym2poly(s)

多項式係數向量轉換為符號多項式:s=poly2sym§

⑥符號運算中變數的確定:

如果沒有明確指定自變數,matlab將按照以下原則確定主變數並對其進行相應運算:

尋找除i,j之外,在字母順序上最接近x的小寫字母。

若表示式中有兩個符號變數與x的距離相等,則ascii碼大者優先;

symvar()函式可以用於查詢乙個符號表示式中的符號變數,函式的呼叫格式為:symvar(s,n),函式返回符號表示式s中的n個符號變數。因此,可以用symvar(s,1)查詢表示式s的主變數。

(3)符號矩陣

符號矩陣也是一種符號表示式,所以符號表示式運算都可以在矩陣意義下進行。

注:這些函式作用於符號矩陣時,是分別作用於矩陣的每乙個元素。

對數值矩陣適用的函式,對符號矩陣也適用。

(1)符號函式的極限

①求符號函式極限的命令為limit,其呼叫格式為:limit(f,x,a)

即求函式f關於變數x在a點的極限。若x省略,則採用系統預設的自變數。a的預設值為0。

②limit函式的另一種功能是求單邊極限,其呼叫格式為:

limit(f,x,a,』right』) limit(f,x,a,』left』)

(2)符號函式的導數

①matlab中的求導函式為diff(f,x,n)

即求函式f關於變數x的n階導數。引數x的用同求極限函式limit,可以預設,預設值與limit相同,n的預設值是1.

(變數多於乙個時,可以用於求偏導數。)

②極限、導數、微分的概念是緊密關聯的。有極限是可導的前提,而導數是微分之商,因此導數也稱為微商。

(3)符號函式的積分

①不定積分:

在matlab中,求不定積分的函式是int,其常用的呼叫格式為int(f,x),求函式f對變數x的不定積分。

②定積分:

在matlab中,定積分的計算也使用int命令,但呼叫格式有區別:int(f,x,a,b),其中,a、b分別表示定積分的下限和上限。

當函式f關於變數x在閉區間[a,b]可積是,函式返回乙個定積分結果;當a、b中有乙個是無窮大(inf)時,函式返回乙個廣義積分;當a、b中有乙個符號表示式時,函式返回乙個符號函式。

(1)級數求和:

(sum()函式也能完成級數求和)

求無窮級數的和需要符號表示式求和函式symsum(),其呼叫格式為:symsum(s,v,n,m),其中,s表示乙個級數的通項,是乙個符號表示式。v是求和變數,v省略時使用系統的預設變數。n和m是求和變數v的初值和末值。

(2)泰勒級數:

matlab提供了taylor()函式展開為冪級數。其呼叫格式為:taylor(f,v,a,name,value)該函式將函式f按變數v在a點展開為泰勒級數,v省略時按預設規則確定變數,a的預設值是0。name和value為選項設定,經常成對使用,前者為選項名,後者為該選項的值。

name有3個取值:

①』expansionpoint』:指定展開點,對應值可以是標量或向量。未設定時,展開點為0

②』order』:指定截斷引數,對應值為乙個正整數。未設定時,截斷引數為6,即展開式的最高端為5

③』ordermode』:指定展開式採用絕對階或相對階,對應值為』absolute』或』relative』。未設定時取』absolute』。

(3)複雜函式的計算方法問題

由以前所學習的計算機基礎知識,我們已經知道計算機的加法和減法運算規則。

是否存在一種方法,使計算機只需要通過四則運算就能計算其他複雜函式?泰勒級數展開就是一種非常好的解決方案。

(1)代數方程符號求解:

在matlab中求解用符號表示式表示的代數方程可由函式solve()實現,其呼叫格式為:

①solve(s):求解符號表示式s的代數方程,求解變數為預設變數

②solve(s,v):求解符號表示式s的代數方程,求解變數為v。

③solve(s1,s2,…,sn,v1,v2,…,vn):求解符號表示式s1,s2,…,sn組成的代數方程組,求解變數分別為v1,v2,…,vn。

(2)常微分方程符號求解

在matlab中,用大寫字母d表示導數,如d2y表示y』』。

①符號常微分方程求解可以通過函式dsolve來實現:dsolve(e,c,v),用於求解常微分方程e在初值條件c下的特解。引數v是方程中的自變數,省略時按預設原則處理,若沒有給出初值條件c,則求方程的通解。

②dsolve在求常微分方程組時的呼叫格式為:dsolve(e1,e2,…,en,c1,c2,…,cn,v)用於求解常微分方程組1,e2,…,en在初值條件c1,c2,…,cn下的特解,若不給出初值條件,則求方程組的通解。v給出求解變數,如果沒有指定自變數,則採用預設自變數t。

零開始學python 從零開始學Python

第1章 python入門 1 1 1 什麼是python 1 1 2 python語言有什麼特點 2 1 3 python可以幹什麼 4 練一練 5 第2章 準備開發環境 6 2 1 在windows上安裝python開發環境 6 2 2 選擇和安裝開發工具 11 練一練 17 第3章 基本概念 1...

Java從零開始學七 選擇結構

一般來說程式的結構包含有下面三種 1 順序結構 2 選擇結構 3 迴圈結構 程式至上而下逐行執行,一條語句執行完之後繼續執行下一條語句,一直到程式的末尾 選擇結構是根據條件的成立與否,再決定要執行哪些語句的一種結構 3.1 if語句 單分支結構 if 判斷條件 示例一 比較2個整型變數的大小 pac...

從零開始學android

相對布局管理器指的是參考某一其他控制項進行擺放,可以通過控制,將元件擺放在乙個指定參考元件的上 下 左 右等位置,這些可以直接通過各個元件提供的屬性完成。下面介紹一下各個方法的基本使用 no.屬性名稱 對應的規則常量 描述1 android layout below relativelayout.b...