資源描述:
《4-Matlab語言符號運算》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、控制系統(tǒng)仿真4thMatlab語言符號運算西南石油大學(xué)—電信學(xué)院—自動化教研室主講:張悅郵箱:control_simulation@aliyun.com4符號運算?數(shù)值運算具有簡單方便、面向?qū)嵱玫葍?yōu)點,廣泛應(yīng)用工程實踐及科學(xué)研究等各個方面,但同時它也有一些缺點,如無法得到無誤差的最終解,不適用于非數(shù)值運算的場合等。?引入符號運算就能解決這方面的問題,就像平時進行數(shù)學(xué)公式推導(dǎo)一樣,符號運算允許在運算對象和運算過程中出現(xiàn)非數(shù)值的符號變量,這為用戶進行數(shù)據(jù)分析提供了有力工具。?Matlab符號運算是在符號數(shù)學(xué)工具箱
2、(SymbolicMathToolbox)支持下完成的。電信學(xué)院-自動化教研室-張悅2014/4/3024.0符號對象?數(shù)值運算的對象:數(shù)值?符號運算的對象:非數(shù)值的符號對象?何為符號對象(SymbolicObject)??符號對象是SymbolicMathToolbox定義的一種新的數(shù)據(jù)類型(sym類型),用來存儲代表非數(shù)值的字符符號(通常是大寫或小寫的英文字母及其字符串)。?符號對象可以是符號常量(符號形式的數(shù))、符號變量、符號函數(shù)以及各種符號表達式(符號數(shù)學(xué)表達式、符號方程與符號矩陣)等。電信學(xué)院-自動
3、化教研室-張悅2014/4/3034.1創(chuàng)建符號對象1.格式:S=sym(‘A’)?%使用sym函數(shù)創(chuàng)建符號變量和表達式,格式:S=sym(‘A’)?x=sym('x')x=?f1=sym('a*x^2+b*x+c')x?%syms可定義多個符號f1=?symsabcxkty?f2=a*(2*x-t)^3+b*sin(4*y)a*x^2+b*x+c?%用findsym來確定符號表達式中的符號f2=?findsym(f2)a*(2*x-t)^3+b*sin(4*y)注意:在上面的符號表達式中,系統(tǒng)會自動將x作為
4、自變量來處理,而將a,b,c等作為常量參數(shù)。也就是說若符號表達式中含有多于一個符號變量時,如果ans=沒有事先指定哪一個作為自變量,Matlab將會按數(shù)學(xué)常規(guī)自行決定。a,b,t,x,y電信學(xué)院-自動化教研室-張悅2014/4/3044.1創(chuàng)建符號對象?f1=sym(‘a(chǎn)*x^2+b*x+c’);?df=diff(f1)符號表達式默認(rèn)自變量?df=?a*x^2+b*x+cx?2*a*x+b1/(4+cos(t))t?決定原則:自變量為除了i4*x/yx和j之外并且在字母位置上最接近x的小寫字母;如果2*a+b
5、b式子中不包含字母(i和j除2*i+4*jx外),則x會被視為默認(rèn)自變量。電信學(xué)院-自動化教研室-張悅2014/4/3054.1創(chuàng)建符號對象2.格式:S=sym(A)?%使用sym函數(shù)創(chuàng)建符號變量和表達式?格式:S=sym(A)?如果A不帶單引號,是一個數(shù)值或數(shù)值矩陣或數(shù)值表達式,則輸出是將數(shù)值對象轉(zhuǎn)換成符號對象。電信學(xué)院-自動化教研室-張悅2014/4/3064.1創(chuàng)建符號對象3.格式:S=sym(A,flag)?命令功能同S=sym(A)。?轉(zhuǎn)換成的符號對象應(yīng)符合flag格式。?表4-1flag可取選項選
6、項含義‘d’最接近的十進制浮點精確表示‘e’帶(數(shù)值計算時)估計誤差的有理數(shù)表示‘f’十六進制浮點表示‘r’缺省設(shè)置,是最接近有理表示的形式。電信學(xué)院-自動化教研室-張悅2014/4/3074.1創(chuàng)建符號對象4.格式:S=sym(‘A’,flag)?命令功能同S=sym(‘A’)。?轉(zhuǎn)換成的符號對象應(yīng)符合flag格式。?表4-2flag可取“限定性”選項選項含義‘positive’限定A為正的實型符號變量‘real’限定A為實型符號變量‘unreal’限定A為非實型符號變量電信學(xué)院-自動化教研室-張悅2014
7、/4/3084.2符號運算的幾個概念1.符號常量?符號常量是一種符號對象。?數(shù)值常量如果作為函數(shù)命令sym()的輸入?yún)⒘?,這就建立了一個符號對象---符號常量,看上去是一個數(shù)值量,但它已經(jīng)是一個符號對象了。?str=class(object)?用來測試建立的操作對象為何種?操作對象類型。命令執(zhí)行后,返?回指代數(shù)據(jù)對象類型的字符串。電信學(xué)院-自動化教研室-張悅2014/4/3094.2符號運算的幾個概念2.符號變量?數(shù)值運算中,變量是數(shù)值可變的數(shù)據(jù);?符號運算中,變量是內(nèi)容可變的符號對象。?雖然可以將一個符號表
8、達式賦值給一個符號變量,但符號變量通常是指一個或幾個特定的字符,不是指符號表達式。?符號變量也叫自由變量。?符號變量與MATLAB數(shù)值運算的數(shù)值變量名稱的命名規(guī)則相同。電信學(xué)院-自動化教研室-張悅2014/4/30104.2符號運算的幾個概念3.符號表達式、符號函數(shù)、符號方程?符號表達式是由符號常量、符號變量、符號函數(shù)用運算符或?qū)S煤瘮?shù)連接而成的符號對象。?符號表達式分為:符號函數(shù)(不帶等號)和符號