7.1 概述
- 建立在Maple組件的基礎(chǔ)上
- 符號表達(dá)式計(jì)算,化簡
- 符號矩陣計(jì)算
- 符號微積分
- 符號函數(shù)畫圖
- 符號代數(shù)方程,微分方程求解
- 支持可變精度運(yùn)算?
7.2 符號對象與符號表達(dá)式
- 新的數(shù)據(jù)類型
sym
類
符號對象的創(chuàng)建命令
符號常量,符號變量,符號函數(shù),符號表達(dá)式
-
sym()
variable = sym(A,flag);//沒有引號 S = sym('A',flag);//有引號
- 沒有引號的: 表示 把一個(gè)用
數(shù)字,數(shù)值矩陣,數(shù)值表達(dá)式
創(chuàng)建為符號對象.
可以是常量,可以是變量
flag 可取d(decimal),e(error),f(float),r(real,default)
sym(2); sym(2*3); A = 2; B = [2,3;4,5]; sym(A); sym(B);
- 有引號:把字符串轉(zhuǎn)換為符號變量
flag 可取 'positive','real'
//注意flag要加引號.
- 沒有引號的: 表示 把一個(gè)用
-
syms()
syms a b c flag ;
- 可以同時(shí)轉(zhuǎn)換多個(gè).
syms x y z ;//會(huì)創(chuàng)建變量名分別為x y z 的字符串符號對象X y z. syms 2 ;//會(huì)報(bào)錯(cuò)!沒有可用的變量名
-
syms()
對常量(即sym()中的不加引號
)會(huì)報(bào)錯(cuò),對字符串,已經(jīng)不需要引號.
-
創(chuàng)建示例
/
符號計(jì)算中的運(yùn)算符與函數(shù)
- 算術(shù)運(yùn)算符
+ - * \ / ^
.* .\ ./ .^
-
“'”(共軛轉(zhuǎn)置)
|“.'”(普通轉(zhuǎn)置)
- 關(guān)系運(yùn)算符
-
==
,~=
-
- 指數(shù)對數(shù)函數(shù)
- 三角雙曲函數(shù)及其反函數(shù)
-
atan2
只能用于數(shù)值計(jì)算
-
- 復(fù)數(shù)函數(shù)
-
conj()
,real()
,imag()
,abs()
-
- 矩陣代數(shù)函數(shù)
diag,triu,tril,inv,det,rank...
符號對象的類型識別函數(shù)
class(S);
isa(S,'double');
isa(S,'sym');
whos;
whos x y;
符號表達(dá)式自變量確定
syms x y z u v w ;
f = sym('3*x^2+y+u+w+v');
findsym(f);
//ans =
// u,v,w,x,y,z
findsym(f,1);
findsym(f,2);//輸出離x最近的兩個(gè)自變量
符號精度計(jì)算
- 數(shù)值類型:matlab浮點(diǎn)算術(shù)運(yùn)算.
- VPA類型:Maple任意精度算術(shù)運(yùn)算叠荠。
- 有理數(shù)類型:Maple精確符號計(jì)算.
- 所需時(shí)間立哑,空間都是最大的廊遍,只要時(shí)間足夠,總是精確的斤儿。最后的結(jié)果都是字符串(雖然看起來像數(shù)值),要從結(jié)果中獲得任意精度的解會(huì)用到下面的函數(shù)道伟。
//functions digits(d);//設(shè)置位數(shù)參數(shù)葫松,default 32 vpa(A,d);//求A的d位近似解 double(A);//把符號矩陣或任意精度表示的矩陣轉(zhuǎn)換為雙精度矩陣。
7.3 符號表達(dá)式操作
- /