MATLAB的符號運算基礎

2021-07-11 16:00:47 字數 3203 閱讀 1324

在數**算中,運算的結果如果是乙個數值,可以稱這類運算為數值運算;如果運算結果為表示式,在matlab中稱為符號運算,符號計算是對未賦值的符號物件(可以是常數、變數、表示式)進行運算和處理。matlab具有符號數學工具箱(symbolicmath toolbox),將符號運算結合到matlab的數值運算環境。符號數學工具箱是建立在maple軟體基礎上的。

建立符號變數的方法有兩種,應用,應用sym與syms函式,通常應用sym建立符號表示式,應用syms同時定義多個符號變數。

(1)函式:sym

功能:用來建立單個符號量

語法形式:sym(『表示式或變數』)

舉例

a = sym('a');     %定義符號變數a,下同

b = sym('b')

c = sym('c')

d = sym('d') %至此定義了4個符號變數

w = 10;x = 5;y = -8;z = 11;

a = [a,b;c,d] %建立符號矩陣a

b = [w,x;y,z] %建立數值矩陣b

c = det(a); %計算符號矩陣a的行列式

d = det(b); %建立數值矩陣b的行列式

可得到如下結果:

由上述結果我們不難看出,在符號運算中是以表示式形式呈現結果的,而在數值運算中是以數值表示結果的。

(2)函式:syms

功能:定義多個符號變數

語法:syms var1 var2 ……varn

說明:函式定義符號變數var1,var2,……,varn等。在用這種格式定義符號變數時無需在變數名上加字元分解符(『』),變數間用空格而不要用逗號分隔,要用空格來分隔。

例2:應用syms函式定義符號變數

syms x y %同時定義x,y為符號變數

a = [sin(x) sin(y);cos(x) cos(y)]

(二)基本的符號運算1基本符號運算函式

在matlab中,有很多應用於符號運算的函式,常用的函式如下表所示:

函式名功能

用法舉例

sym字串或數值到符號的切換

sym(『a+b』)

expand

展開syms  x

s = (-7*x^2-8*y^2)*(-x^2+3*y^2);

expand(s)

collect(s,x)

factor(ans)

g = ******(ans)

collect

合併同類項

factor

因式分解

simplify

******

化簡sym2poly(s)

轉化s為多項式係數向量

syms x;f=』2*x^2+3*x-5』;

n = sym2poly(f)

poly2sym(n)

poly2sym(c)

轉換多項式係數向量c為符號多項式

2符號表示式運算

(1)符號表示式的四則運算

syms x y z; %定義x,y,z為符號變數

f1 = 2*x+x^2*x-5*x+x^3

f2 = 2*x/(5*x)

f3 = (x+y)*(x-y)

(2)因式分解與多項式展開

函式1:factor

功能:分解因式

語法:factor(s)

說明:s是符號表示式或符號矩陣

函式2:collect

功能:合併同類項

語法:collect(s)

collect(s,x)

說明:對s按符號變數x進行同類項合併,s是符號表示式或符號矩陣。

舉例:對表示式

f = sym('2*(x-1)/(x^2+2*x-3)'); %輸入表示式

f = factor(f) %對符號表示式f進行因式分解

(3)表示式化簡matlab提供的對符號表示式化簡函式為simplify。

函式:simplify

功能:對表示式進行化簡

語法:simplfy(s)

f=cos(x)^2+sin(x)^2

simplify(f)

:simplify和******是matlab符號數學工具箱提供的兩個簡化函式,區別如下:

simplify的呼叫格式為:simplify(s);對表示式s進行化簡。

******是通過對表示式嘗試多種不同的方法(包括simplify)進行化簡,以尋求符號表示式s的最簡形式。

呼叫方式為:

[r,how]=******(s);r為返回的簡化形式,how為化簡過程中使用的一種方法。how有以下幾種形式:

(1)simplify 函式對表示式進行化簡;

(2)radsimp函式對含根式的表示式進行化簡;

(3)combine 函式將表示式中以求和、乘積、冪運算等形式出現的項進行合併;

(4)collet合併同類項

(5)factor函式實現因式分解

(6)convert函式完成表示式形式的轉換

參考文獻

[1] 劉加海,嚴冰等主編. matlab視覺化科學計算[m]:浙江: 浙江大學出版社,2014.6

[2] 薛定宇,陳陽泉主編.高等應用數學問題的matlab求解[m]:第二版.北京: 清華大學出版社,2015.6

matlab符號運算基礎

sym與syms 區別1 如果定義變數x,syms x 當用sym生成多個符號變數時,matlab要報錯 syms函式的功能比sym函式更為強大,它可以一次建立任意多個符號變數.而且,syms函式的使用格式也很簡單,使用格式如下 syms var1 var2 var3 如 syms x y z 區別...

Matlab符號運算

一 宣告 宣告單個符號變數 sym a 宣告多個符號變數 syms a b c 二 符號表示式 提取分子分母 n,d numdem a 自變數為 v的符號函式的反函式 finverse f,v 求和 symsum s,v,a,b 三 符號表示式化簡 以直觀漂亮的形式顯示 pretty f 合併同類項...

matlab符號運算

sym打頭與符號相關 定義符號物件 sym syms f sym arg 將數字 字串和表示式arg轉換成符號物件f syms arg1 arg2 arg3 將符號 arg1 arg2 arg3.定義為基本符號物件 syms arg1 arg2 同上 符號表示式累計求和 symsum s symsu...