当前位置:文档之家› 符号计算(1)

符号计算(1)

符号计算(1)
符号计算(1)

第 5 章符号计算

符号计算的优点:凭借恒等式,数学定理,通过推理和演绎,给出具有“无限尺度”描写能力的解析结果。当没有封闭解时,符号计算则妥协地给出任意精度数值解。所谓“无限尺度”是相对数值计算的“有限精度、有限空间”而言的。

MATLAB本身由数值计算引擎驱动,而没有符号演绎能力。2008年前,MA TLAB的符号计算能力借助于Maple。现在,随MA TLAB默认安装的符号计算引擎是MuPAD。虽然MATLAB尽力地保持着形式上的向前兼容,但引擎换装确实导致MA TLAB符号计算环境发生了根本改变。本章内容完全针对MuPAD引擎的符号计算而写,分三个层面:

●无需任何MuPAD知识,仅使用MA TLAB符号数学工具包(Symbolic math toolbox)提

供的(前台)函数实施的符号计算及仿真。本章第1节比较完整地描述了符号计算的机理、规则和帮助系统。第2到第6节所涉内容包括微积分、微分方程、积分变换、矩阵分析和代数方程。第7节代数状态方程和第8节数据探索的内容,用以表现现代计算能力对传统方法或技巧的冲击。

●需要少量MuPAD知识,拓展符号计算应用范围的内容安排在第5.9节。在这一节中不

仅讲述特殊函数计算,而且还介绍了如何利用符号函数产生M函数文件,如何利用符号函数制作用户所需的Simulink模块。

●需要较多MuPAD知识,借助evalin和feval指令进入MuPAD空间完成符号计算。

对于那些在MA TLAB中仍选择Maple符号计算引擎的读者来说,本章第一层面的内容仍可借鉴。

值得指出:随书光盘mbook目录上的“ch05_符号计算.doc”保存有本章全部算例的运作指令、计算结果和图形;mfile目录上则保存有本章算例中所有带exm前缀文件名的M文件和MEX文件。

5.1符号对象的产生和识别

5.1.1基本符号对象的创建

1定义符号数字和符号常数

2定义基本符号变量

3定义元符号表达式

5.1.2符号计算中的算符和函数指令

1符号计算中的算符

2符号计算中的函数指令

5.1.3符号对象、变量、自由变量的识别1符号对象的识别

【例5.1-1】数据对象及其识别指令的使用。

(1)

clear

a=1;b=2;c=3;d=4;

Mn=[a,b;c,d]

Mc='[a,b;c,d]'

Ms=sym(Mc)

Mn =

1 2

3 4

Mc =

[a,b;c,d]

Ms =

[ a, b]

[ c, d]

(2)

SizeMn=size(Mn)

SizeMc=size(Mc)

SizeMs=size(Ms)

SizeMn =

2 2

SizeMc =

1 9

SizeMs =

2 2

(3)

CMn=class(Mn)

CMc=class(Mc)

CMs=class(Ms)

CMn =

double

CMc =

char

CMs =

sym

(4)

isa(Mn,'double')

isa(Mc,'char')

isa(Ms,'sym')

ans =

1

ans =

1

ans =

1

(5)

whos Mn Mc Ms

Name Size Bytes Class Attributes

Mc 1x9 18 char

Mn 2x2 32 double

Ms 2x2 60 sym

2符号变量及自由变量的认定

【例5.1-2】基本符号变量和衍生符号表达式的定义、符号变量、自由符号变量的机器辨认。(1)

clear

syms a b k t w x y z X A

c=sym('22');

f=sym('M*N');

ex1=c+f+(exp(-a*t)*sin(w*t)+b*y+k*x+A*X+log(z))

ex1 =

log(z) + b*y + k*x + sin(t*w)/exp(a*t) + A*X + M*N + 22

(2)

symvar(ex1) %<6>

ans =

findsym(ex1)

ans =

A,M,N,X,a,b,k,t,w,x,y,z

(3)

symvar(ex1,20) %<8>

ans =

[ x, y, w, z, t, k, b, a, X, N, M, A]

findsym(ex1,13) %

ans =

x,y,w,z,t,k,b,a,X,N,M,A

(4)

who %<10>

%

Your variables are:

A X a ans b c ex1 f k t w x y z

(5)

dex1dx=diff(ex1,z) %<11>

iex1db=int(ex1,b) %<12>

dex1dx =

1/z

iex1db =

(y*b^2)/2 + (log(z) + k*x + sin(t*w)/exp(a*t) + A*X + M*N + 22)*b

【例5.1-3】元符号表达式的定义、符号变量、自由符号变量的机器辨认。

(1)

clear

c=sym('22');

f=sym('M*N');

ex2=c+f+sym('exp(-a*t)*sin(w*t)+b*y+k*x+A*X+log(z)')

ex2 =

log(z) + b*y + k*x + sin(t*w)/exp(a*t) + A*X + M*N + 22

(2)

symvar(ex2) %<5>

ans =

(3)

symvar(ex2,20)%<6>

ans =

[ x, y, w, z, t, k, b, a, X, N, M, A]

(4)

who % <7> Your variables are:

ans c ex2 f

(5)

dex1dx=diff(ex2,z) %<8>

??? Undefined function or variable 'z'.

dex1db=int(ex2,b) %<9>

??? Undefined function or variable 'b'.

(6)

E3=sym('a*sqrt(theta)') %

??? Error using ==> sym.sym>convertExpression at 2547

Error: argument must be of 'Type::Arithmetical' [sqrt]

Error in ==> sym.sym>convertChar at 2458

s = convertExpression(x);

Error in ==> sym.sym>convertCharWithOption at 2441

s = convertChar(x);

Error in ==> sym.sym>tomupad at 2195

S = convertCharWithOption(x,a);

Error in ==> sym.sym>sym.sym at 111

S.s = tomupad(x,'');

E4=sym('a*sqrt(theta123)')

E4 =

a*theta123^(1/2)

【例5.1-4】symvar确定自由变量是对整个数组进行的。

(1)

clear

syms a b t v w x y z

A=[a+b*x,y*sin(t)+w;x*exp(-t),log(z)+v] A =

[ a + b*x, w + y*sin(t)]

[ x/exp(t), v + log(z)]

(2)

symvar(A,1)

ans =

x

symvar(A,3)

ans =

[ x, y, w]

symvar(A,10)

ans =

[ x, y, w, z, v, t, b, a]

5.1.4符号运算机理和变量假设1符号运算的工作机理

2对符号变量的限定性假设

(1)

(2)

3清除变量和撤销假设

【例5.1-5】syms对变量所作限定性假设的影响。(1)

syms x clear

f=x^3+4.75*x+2.5;

rf=solve(f,x)

rf =

-1/2

1/4 - (79^(1/2)*i)/4

1/4 + (79^(1/2)*i)/4

evalin(symengine,'getprop(x)') %<4>

ans =

C_

evalin(symengine,'property::showprops(x);')

%<5>

ans =

[ empty sym ]

(2)

syms x real

rfr=solve(f,x)

rfr =

-1/2

evalin(symengine,'getprop(x)') %<8>

ans =

R_

evalin(symengine,'property::showprops(x);')%<9> ans =

[x in R_]

(3)

clear x

syms x

g=x^2+x+5;

rg=solve(g,x)

Warning: Explicit solution could not be found. > In solve at 81

rg =

[ empty sym ]

(4)

syms x clear

rg=solve(g,x)

rg =

- 1/2 - (19^(1/2)*i)/2

- 1/2 + (19^(1/2)*i)/2

【例5.1-6】借助evalin对符号变量进行假设的设定和撤销。(1)

clear

syms x

f=x^3-5.25*x-2.5;

rf=feval(symengine,'solve',f,'x') %<4>

rf =

[ -1/2, 5/2, -2]

(2)

x=sym(x,'positive');

rf=feval(symengine,'solve',f,'x') %<6>

rf =

5/2

rfs=solve(f,x)

rfs =

5/2

evalin(symengine,'getprop(x)') %<8>

ans =

Dom::Interval(0, Inf)

evalin(symengine,'delete x')

evalin(symengine,'getprop(x)') %<10>

ans =

C_

(3)

evalin(symengine,'assume(x,Type::Integer);') %<11>

rf=feval(symengine,'solve',f,'x') %<12>

rf =

-2

evalin(symengine,'assumeAlso(x>0)') %<13> rf_ev=evalin(symengine,'solve(x^3-5.25*x-2.5);') %<14>

rf_evc=evalin(symengine,['solve(',char(f),')']) %<15>

rf_f=feval(symengine,'solve',f,'x') %<16> rf_ev =

[ empty sym ]

rf_evc =

[ empty sym ]

rf_f =

[ empty sym ]

evalin(symengine,'assume(x, Type::Complex);') %<17>

rf=feval(symengine,'solve',f,'x') %<18>

rf =

[ -1/2, 5/2, -2]

(4)

syms %<19>

'ans' 'f' 'rf' 'rf_ev' 'rf_evc' 'rf_f' 'rfs' 'x'

5.1.5符号帮助及其他常用指令

1符号运作的帮助体系

(1)“直接调用符号计算指令”的求助

(2)借助mfun调用的“特殊函数指令”的求助

(3)借助evalin或feval调用的“MuPAD指令”的求助。

【例5.1-7】关于laplace, erfc, rec三个指令的求助过程。

(1)

图5.1-1 “可直接调用的符号计算指令”的帮助信息搜索(2)

图5.1-2 MA TLAB帮助浏览器展示全部特殊函数符号计算指令及用法(3)

图5.1-3 MuPAD帮助浏览器展示的rec指令帮助信息2服务于符号运作的其他指令

【例5.1-8】各种帮助指令、符号变量罗列指令

(1)

clear all

reset(symengine) %<2>

Da=1.2;Dw=1/3; %

syms sa sw sx sy sz %

syms A B positive %<5>

syms C real %<6>

(2)

whos %<7>

Name Size Bytes Class Attributes

A 1x1 60 sym

B 1x1 60 sym

C 1x1 60 sym

Da 1x1 8 double

Dw 1x1 8 double

sa 1x1 60 sym

sw 1x1 60 sym

sx 1x1 60 sym

sy 1x1 60 sym

sz 1x1 60 sym

(3)

syms %<8>

'A' 'B' 'C' 'sa' 'sw' 'sx' 'sy' 'sz'

(4)

evalin(symengine,'anames(Properties)') %<9> ans =

[ A, B, C]

(5)

clear A

syms %<11>

'B' 'C' 'ans' 'sa' 'sw' 'sx' 'sy' 'sz'

evalin(symengine,'anames(Properties)') %

<12>

ans =

[ A, B, C]

(6)

syms B clear %<13>

syms

'B' 'C' 'ans' 'sa' 'sw' 'sx' 'sy' 'sz'

evalin(symengine,'anames(Properties)') % <15>

ans =

[ A, C]

5.2数字类型转换及符号表达式操作

5.2.1数字类型及转换

1三种数字类型及转换指令

图 5.2-1 符号、字符、数值间的相互转换

2双精度数字向符号数字转换

【例5.2-1】本例目的:准确符号数字的产生;双精度数字转换成符号数字的各种格式;由双精度数字转换而得符号数的误差;vpa的用法;数字类别的判断。

(1)

clear

sa=sym('1/3') %<2>

sb=sym('pi+sqrt(5)') %<3>

sa =

1/3

sb =

pi + 5^(1/2)

(2)

format long

a=1/3 %<5>

b=pi+sqrt(5) %<6>

sa_a=vpa(sa-a) %<7>

sb_b=vpa(sb-b) %<8>

a =

0.333333333333333

b =

5.377660631089583

sa_a =

0.0

sb_b =

0.000000000000000013822375841085200048593542564188

(3)

asr=sym(a)

bsr=sym(b)

sa_asr=vpa(sa-asr)

sb_bsr=vpa(sb-bsr)

asr =

1/3

bsr =

189209612611719/35184372088832

sa_asr =

0.0

sb_bsr =

0.000000000000000013822375841085200048593542564188

(4)

ase=sym(a,'e')

bse=sym(b,'e')

sa_ase=vpa(sa-ase)

sb_bse=vpa(sb-bse)

ase =

1/3 - eps/12

bse =

189209612611719/35184372088832

sa_ase =

0.083333333333333333333333333333333*eps

sb_bse =

0.000000000000000013822375841085200048593542564188

(5)

asf=sym(a,'f')

bsf=sym(b,'f')

sa_asf=vpa(sa-asf)

sb_bsf=vpa(sb-bsf)

asf =

6004799503160661/18014398509481984

bsf =

189209612611719/35184372088832

sa_asf =

0.000000000000000018503717077085942340393861134847

sb_bsf =

0.000000000000000013822375841085200048593542564188

(6)

asd=sym(a,'d')

bsd=sym(b,'d')

sa_asd=vpa(sa-asd)

sb_bsd=vpa(sb-bsd)

asd =

0.33333333333333331482961625624739

bsd =

5.3776606310895829210494412109256

sa_asd =

0.000000000000000018503717077085943333333327037792

sb_bsd =

0.000000000000000013822375841085179119638453173161

(7)

class(sa)

ans =

sym

disp('a的类别 asr的类别 sa_a的类别')

disp([class(a),blanks(4),class(asr),blanks(7),class(sa_a)])

a的类别 asr的类别 sa_a的类别

double sym sym

【例5.2-2】本例目的:揭露字符串数字在不同计算引擎中的不同表现;指令format的用法;double与str2double的区别。

(1)

clear

format long %<2>

ad=1/2+3^(2/3)

astr='1/2+3^(2/3)'

asym=sym(astr)

ad =

2.580083823051904

astr =

1/2+3^(2/3)

asym =

3^(2/3) + 1/2

(2)

disp(' ad astr asym')

disp([blanks(6),' 的数据类别'])

disp([class(ad),blanks(3),class(astr),blanks(4),class(asym)]) ad astr asym

的数据类别

double char sym

(3)

asymPLUSad=asym+sym(0.1) %<9>

asymPLUSda2=asym+0.1 %<10>

asymPLUSad =

3^(2/3) + 3/5

asymPLUSda2 =

3^(2/3) + 3/5

(4)

astr==asym

ans =

1

asym2=asym+sym('0.1') %<12>

astr2=asym+'0.1' %<13>

asym2 =

3^(2/3) + 0.6

astr2 =

3^(2/3) + 0.6

(5)

get(0,'format') %<14>

format %<15>

format compact %<16>

disp('字符串''0.1''的ASCII码值数组')

disp(double('0.1'))

ad

ans =

long

字符串'0.1'的ASCII码值数组

48 46 49

ad =

2.5801

ad3=ad+double('0.1') %<20>

astr3=ad+'0.1' %<21>

ad3 =

50.5801 48.5801 51.5801

astr3 =

50.5801 48.5801 51.5801

(6)

asym+sym(ad)+sym('0.1') %<22>

asym_ad_str=asym+ad+'0.1' %<23>

ans =

3^(2/3) + 3.1800838230519040905619476689026 asym_ad_str =

3^(2/3) + 3.1800838230519040905619476689026

(7)

da=double('a')

sda=str2double('a')

d3=double('3')

sd3=str2double('3')

da =

97

sda =

NaN

d3 =

51

sd3 =

3

3符号数字向双精度数字转换

【例5.2-3】double指令的不同作用。

(1)

clear

format long

ad=1/2+sqrt(2)

astr='1/2+sqrt(2)'

asym=sym(astr)

ad =

1.914213562373095

astr =

1/2+sqrt(2)

asym =

2^(1/2) + 1/2

(2)

double_asym=double(asym)

double_asym==ad

double_asym =

1.914213562373095

ans =

1

(3)

format

format compact

double(astr)

ad

ans =

49 47 50 43 115 113 114 116 40 50 41

ad =

1.9142

4符号数字的任意精度表达形式

【例5.2-4】本例演示:digits的用法及影响;vpa指定符号数字有效位的影响和含义;符号计算引擎的重置指令reset(symengine)。

(1)

reset(symengine) %<1>

sa=sym('1/3+sqrt(2)')

sa =

2^(1/2) + 1/3

(2)

digits %<3>

Digits = 32

format long

a=1/3+sqrt(2)

sa_Plus_a=vpa(sa+a,20) %<6>

sa_Minus_a=vpa(sa-a,20) %<7>

a =

1.747546895706428

sa_Plus_a =

3.4950937914128567869

sa_Minus_a =

-0.000000000000000022658064826339973669

(3)

sa32=vpa(sa) %<8>

digits(48) %<9>

sa5=vpa(sa,5) %<10>

sa48=vpa(sa) %<11>

sa32 =

1.747546895706428382135022057543

sa5 =

1.7475

sa48 =

1.74754689570642838213502205754303141190300520871

(4)

a

b=a+1/10^12

a =

1.747546895706428

b =

1.747546895707429

a5=vpa(a,5),b5=vpa(b,5)

a5 =

1.7475

b5 =

1.7475

a5==b5

ans =

5.2.2符号表达式的简化操作

【例5.2-5】各种简化指令的使用示例。

(1)

syms x y

(2)

第章MATLAB符号计算习题答案

第9章 MATLAB符号计算 习题9 一、选择题 1.设有a=sym(4)。则1/a+1/a的值是()。B A. B.1/2 C.1/4+1/4 D.2/a 2.函数factor(sym(15))的值是()。D A.'15' B.15 C.[ 1, 3, 5] D.[ 3, 5] 3.在命令行窗口输入下列命令: >> f=sym(1); >> eval(int(f,1,4)) 则命令执行后的输出结果是()。A A.3 B.4 C.5 D.1 4.MATLAB将函数展开为幂级数,所使用的函数是()。D A.tailor B.tayler C.diff D.taylor 5.MATLAB用于符号常微分方程求解的函数是()。C

A.solve B.solver C.dsolve D.dsolver 二、填空题 1.在进行符号运算之前首先要建立,所使用的函数或命令有 和。符号对象,sym,syms 2.对于“没有定义”的极限,MATLAB给出的结果为;对于 极限值为无穷大的极限,MATLAB给出的结果为。NaN,Inf 3.在命令行窗口输入下列命令: >> syms n; >> s=symsum(n,1,10) 命令执行后s的值是。55 4.在MATLAB中,函数solve(s,v)用于代数方程符号求解,其中s 代表,v代表。符号代数方程,求解变量 5.在MATLAB符号计算中y的二阶导数表示为。D2y 三、应用题 1.分解因式。 (1)x9-1 (2)x4+x3+2x2+x+1 (3)125x6+75x4+15x2+1 (4)x2+y2+z2+2(xy+yz+zx) (1):

隐函数方程求解以及导函数——符号计算和数值计算结合

这个问题可以作为符号运算和数值运算结合的很好的一个例子:利用隐函数求导公式对f 进行一二阶求导,然后利用solve得到B关于t的一、二阶导数的符号表达式,然后再利用eval函数转化成数值表达式:整个代码如下: 1. 2.syms A B ; 3.r=1;beta=pi/5;rho=2; 4.%f的符号表达式 5.f=(r*sin(A)-rho*sin(3*B))*(cos(beta)-sin(beta)*cos(3*B)-... 6. sin(beta)*sin(3*B)*tan(B))-(r*cos(A)-rho*cos(beta)*cos(3*B))* tan(B); 7.%将A,B分别用90*t和B(t)替换,为的是好利用符号diff函数来求对B关于 t的隐函数F求导 8. F = subs(f,{'A','B'},{'90*t','B(t)'}); 9.dFt = diff(F,'t');%一阶导数 10.%将diff(B(t), t)用dBt替换,为的是下一步方便用solve求解diff(B(t), t) 的表达式 11.dFt = subs(dFt,'diff(B(t), t)','dBt'); 12.dBt = solve(dFt,'dBt');%得到B关于t的一阶导数的表达式 13.%将dBt用dBt(t)替换,为的是告诉MATLAB,dBt是关于t的函数,能够进一步 求导 14.dFt_ = subs(dFt,'dBt','dBt(t)'); 15.ddFt = diff(dFt_,'t');%二阶导数 16.%替换'diff(dBt(t), t)','diff(B(t), t)',方便求解ddBt的表达式 17.ddFt = subs(ddFt,{'diff(dBt(t), t)','diff(B(t), t)'},{'ddBt','dBt(t)'}); 18.ddBt = solve(ddFt,'ddBt');%求解B关于t的二阶导数的表达式 19.B = @(t) fzero(@(B) (r*sin(90*t)-rho*sin(3*B))*(cos(beta)-... 20. sin(beta)*cos(3*B)-sin(beta)*sin(3*B)*tan(B))-... 21. (r*cos(90*t)-rho*cos(beta)*cos(3*B))*tan(B),1);%B关于t的函数 22.eval(['dBt = @(t) ',char(dBt),';' ])%利用eval函数将符号dBt的表达式 转化为数值函数 23.eval(['ddBt = @(t) ',char(ddBt),';' ]) 24.R = 1; 25.C = @(t) R*cos(90*t)/tan(B(t))+sin(90*t);%C的表达式 26.t = 0.2:0.1:2; 27.plot(t,arrayfun(@(T) C(T),t) )%画C关于t的图 28. 复制代码 需要说明的是得到B的函数句柄B(t)后我们可以利用导数的定义来近似表达式dBt,和ddBt,这样的优点是速度快,但是不精确。上述得到的dBt,ddBt,较为精确,但是计算量比较大。 1. 2.>> (B(1)-B(1.00001))/-0.00001

matlab符号运算

MATLAB程序设计教程(9)——MATLAB符号计算 by:ysuncn(欢迎转载,请注明原创信息) 第9章MATLAB符号计算 9.1 符号对象 9.2 符号微积分 9.3 级数 9.4 符号方程求解 9.1 符号对象 9.1.1 建立符号对象 1.建立符号变量和符号常量 MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。 (1) sym函数 sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym('符号字符串') 该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。 应用sym函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。

下面的命令用于比较符号常量与数值常量在代数运算时的差别。 (2) syms函数 函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为: syms 符号变量名1 符号变量名2 … 符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。 2.建立符号表达式 含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法: (1)利用单引号来生成符号表达式。 (2)用sym函数建立符号表达式。 (3) 使用已经定义的符号变量组成符号表达式。 9.1.2 符号表达式运算 1.符号表达式的四则运算 符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和symdiv来实现,幂运算可以由sympow来实现。

【免费下载】MATLAB符号运算习题

第3讲 MATLAB 符号计算符号计算则是可以对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理。MATLAB 具有符号数学工具箱(Symbolic Math Toolbox),将符号运算结合到MATLAB 的数值运算环境。符号数学工具箱是建立在Maple 软件基础上的。 1、求矩阵的行列式值、非共轭转置和特征值。??????=22211211a a a a A 解: >> A=sym('[a11,a12;a21,a22]') A = [ a11, a12][ a21, a22] >> B=det(A) B = a11*a22-a12*a21 >> C=A.' C = [ a11, a21][ a12, a22] >> D=eig(A) D = 1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2) 1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)2\符号表达式f=2x 2+3x+4与g=5x+6的代数运算(f+g ,f*g )。

解: 2、将g=x3-6x2+11x-6用两种形式的符号表达式的表示。(因 式和嵌套式) 解:>> f=sym('x^3-6*x^2+11*x-6') f = x^3-6*x^2+11*x-6 >> g=sym('(x-1)*(x-2)*(x-3)') g = (x-1)*(x-2)*(x-3) >> g1=sym('x*(x*(x-6)+11)-6') g1 = x*(x*(x-6)+11)-6

符号计算(2)

5.1微分方程的符号解法 5.1.1符号解法和数值解法的互补作用5.1.2求微分方程符号解的一般指令5.1.3微分方程符号解示例 【例5.4-1】求d x d t y d y d t x ==- ,的解。 clear all %<1> S=dsolve('Dx=y,Dy=-x') disp(' ') disp(['微分方程的解',blanks(8),'x',blanks(20),'y']) disp([S.x,S.y]) S = y: [1x1 sym] x: [1x1 sym] 微分方程的解 x y [ C2*cos(t) + C1*sin(t), C1*cos(t) - C2*sin(t)] 【例5.4-2】图示微分方程2) (y y x y' -' =的通解和奇解的关系。(1) clear all %<1> y=dsolve('(Dy)^2-x*Dy+y=0','x') %<2> y = x^2/4 C3*x - C3^2 (2) clf,hold on hy1=ezplot(y(1),[-6,6,-4,8],1); %<4> set(hy1,'Color','r','LineWidth',5) for k=-2:0.5:2 %<6> y2=subs(y(2),'C3',k); %<7> ezplot(y2,[-6,6,-4,8],1) end %<9> hold off box on

legend('奇解','通解','Location','Best') ylabel('y') title(['\fontsize{14}微分方程',' (y '')^2 – xy '' + y = 0 ','的解']) -6 -4-2 0246 -4-2 2 4 6 8 x 微分方程 (y ')2 – xy ' + y = 0 的解 y 奇解通解 图 5.4-1 通解和奇解曲线 【例5.4-3】求解两点边值问题:0)5(,0)1(,32==='-''y y x y y x 。 (1) y=dsolve('x*D2y-3*Dy=x^2','y(1)=0,y(5)=0','x') y = (31*x^4)/468 - x^3/3 + 125/468 (2) xn=-1:6; yn=subs(y,'x',xn) ezplot(y,[-1,6]) hold on plot([1,5],[0,0],'.r','MarkerSize',20) text(1,1,'y(1)=0') text(4,1,'y(5)=0') title(['x*D2y - 3*Dy = x^2',', y(1)=0,y(5)=0']) hold off yn = Columns 1 through 7 0.6667 0.2671 0 -1.3397 -3.3675 -4.1090 0.0000

符号运算练习题 homework

第五章符合运算练习题 1.求符号函数f=ax3+by2+cx+d分别对x,y进行三次微分;对 y进行定积分和不定积分,对y 的定积分区间为(0,1);对y趋向于1求极限。

2. 已知f=1/(1+x^2),g=sin(y),求复合函数f(g(y)). >> syms x y; >> f=1/(1+x^2); >> g=sin(y); >> compose(f,g) ans = 1/(1+sin(y)^2) 3.求三元非线性方程组?? ???-==+=++1z *y 43z x 012x x 2的解。 >> syms x y z; >> f1=sym('x^2+2*x+1'); >> f2=sym('x+3*z-4'); >> f3=sym('y*z+1'); >> solve(f1,f2,f3); >> [x,y,z]=solve(f1,f2,f3) x = -1 y = -3/5 z = 5/3

解方程组??? ????=+=-1 cos y dx dz x z dx dy 当y(0)=1,z(0)=0时,求微分方程组的解。 >> [y,z]=dsolve('Dy-z=cos(x)','Dz+y=1','y(0)=1','z(0)=0','x') y = 1+1/2*sin(x)+1/2*cos(x)*x z = -1/2*sin(x)*x 5.求级数 +++++222k 131211和1+x+x 2+…+x k +…的和。 >> syms k; >> symsum(1/k^2,k,1,inf) ans = 1/6*pi^2 >> syms x k; >> symsum(x^k,k,0,inf) ans = -1/(x-1) 6计算积分21x dx 1x +∞?(+) >> syms x ; >> f=sym('sqrt(x)/((1+x)^2)'); >> int(f,x,1,+inf) ans =

24点及巧填运算符号习题(四上数学游戏练习含答案)

. 巧算“24”点练习卷(一) 1.你能将2、4、5、8利用“+、-、×、÷”和括号组成一个结果为24的算式吗?有几种解法? ()()()8524382424583824582420424 -??=?=?-?=?=?÷+=+= 2.四张牌上的数是3、4、6、10,怎样用这四个不同的数组成得数是24 的算式? (写出三种解法) ()()()3104638243610418624 1043618624 ?+-=?=?+-=+=-?+=+= 3. 用1、2、5、8、这四个数组成得数是24的算式。(写出三 种解法) ()()()()()8215462452813824851212224 ÷?+=?=-??=?=+-?=?= 巧算“24”点练习卷(二) 1.怎样用下面四张牌上的数进行计算,使最后得数等于24?(写出三种解法) ()()()() ()2634121224 63423824 46322412434263824 ?+?=+=-??=?=??-=?=?÷+=?= 2. 怎样用3、3,8,9四个数进行计算,使最后得数等 于24?(写出三种解法) ()()()93383824 833915924833933924 --?=?=-?+=+=+?-=-= 3.用两个5和两个6计算,使最后得数等于24。(写出三 种解法) ()()55664624 556625124 65656424 +-?=?=?-÷=-=?--=?=????

. 巧算“24”点练习卷(三) 1.小华从一副扑克牌中摸出四张,请你进行计算,使最后得数等于24。 (写出三种解法) ()()()()6293462493623824396227324 -?-=?=÷?+=?=?-÷=-= 2.有四个数: 1、3、5、9,请你进行计算,使最后得数等于24。 (写出三种解法) ()()()135915924 51934624359124124 ??+=+=-?-=?=?+?=?= 3.你会用2、6、6、7这四个数进行计算,使最后的得数等于24吗? (写出三种解法) ()()()72663062467624822476264624 -?-=-=?+÷=÷=-÷?=?= 巧算“24”点练习卷(四) 1. 你会用两个4和两个5进行计算,使最后的得数是24吗? (写出三种解法) ()()554425124 4554462454546424 ?-÷=-=?+-=?=-+?=?= 2.有四个数: 2、4、8、10,请你进行计算,使最后得数等于 24。 (写出三种解法) ()()()()()82104462410284122244108248224 ÷?-=?=+?÷=?=?+÷=÷= 3.你会用3、4、7、10这四个数进行计算,使最后的得数等于24吗? (写出三种解法)

Mathematica强大的数值计算和符号运算数学专用软件

Mathematica强大的数值计算和符号运算数学专用软件 Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件。它拥有强大的数值计算和符号计算能力,在这一方面与Maple类似,但它的符号计算不是基于Maple上的,而是自己开发的。 Mathematica系统介绍 Mathematica的基本系统主要是用C语言开发的,因而可以比较容易地移植到各种平台上,Mathematica是一个交互式的计算系统,计算是在用户和Mathematica互相交换、传递信息数据的过程中完成的。Mathematica系统所接受的命令都被称作表达式,系统在接受了一个表达式之后就对它进行处理,然后再把计算结果返回。Mathematica对于输入形式有比较严格的规定,用户必须按照系统规定的数学格式输入,系统才能正确地处理,不过由于3.0版本(及以后版本)引入输入面板,并且可以修改、重组输入面板,因此以前版本输入指令时需要不断切换大小写字符的繁琐方式得到很好的改善。3.0版本可以用各种格式保存文件和剪贴内容,包括RTF、HTML、BMP等格式。 Mathematica是一个功能强大的数学软件,也是目前国内外最常用的数学软件之一。该软件不但可以解决数学中的数值计算问题,还可以解决符号演算问题,并且能够方便地绘出各种函数图形。不管是一个正在学习的学生,还是教师或科研人员,当在学习或科学研究中遇到棘手的数学问题时,Mathematica会提供的各种命令,可以避免做繁琐的数学推导和计算,帮助方便地解决所遇到的很多数学问题,使能省出更多的时间和精力做进一步的学习和探索。目前,我们在国内外的科研论文、教材等很多地方都能看到Mathematica的身影。此外,Mathematica 具有简单、易学、界面友好和使用方便等特点,只要你有一定的数学知识并了解计算机的基本操作方法,就能快速掌握Mathematica大部分主要功能,并能用Mathematica解决在学习、教学和科学研究中遇到的数学求解问题。 Mathematica功能简介 1、数值计算和符号计算

现代通信原理指导书 第七章 信源编码 习题详解

第七章 信源编码 7-1已知某地天气预报状态分为六种:晴天、多云、阴天、小雨、中雨、大雨。 ① 若六种状态等概出现,求每种消息的平均信息量及等长二进制编码的码长N 。 ② 若六种状态出现的概率为:晴天—;多云—;阴天—;小雨—;中雨—;大雨—。试计算消息的平均信息量,若按Huffman 码进行最佳编码,试求各状态编码及平均码长N 。 解: ①每种状态出现的概率为 6,...,1,6 1 ==i P i 因此消息的平均信息量为 ∑=- ===6 1 22 /58.26log 1 log i i i bit P P I 消息 等长二进制编码的码长N =[][]316log 1log 22=+=+L 。 ②各种状态出现的概率如题所给,则消息的平均信息量为 6 2 1 2222221log 0.6log 0.60.22log 0.220.1log 0.10.06log 0.060.013log 0.0130.007log 0.0071.63/i i i I P P bit - == = ------ ≈ ∑消息 Huffman 编码树如下图所示: 由此可以得到各状态编码为:晴—0,多云—10,阴天—110,小雨—1110,中雨—11110, 大雨—11111。 平均码长为: 6 1 10.620.2230.140.0650.01350.0071.68 i i i N n P == =?+?+?+?+?+? =∑— 7-2某一离散无记忆信源(DMS )由8个字母(1,2,,8)i X i =???组成,设每个字母出现的概率分别为:,,,,,,,。试求: ① Huffman 编码时产生的8个不等长码字; ② 平均二进制编码长度N ; ③ 信源的熵,并与N 比较。 解:①采用冒泡法画出Huffman 编码树如下图所示 可以得到按概率从大到小8个不等长码字依次为: 0100,0101,1110,1111,011,100,00,1087654321========X X X X X X X X

第2章0和1-语义符号化、符号计算化与计算自动化练习题答案解析

第2章符号化、计算化与自动化 1、易经是用0和1符号化自然现象及其变化规律的典型案例。下列说法不正确的是_____。 (A)易经既是用0和1来抽象自然现象,同时又不单纯是0和1,起始即将0和1与语义“阴”和“阳”绑定在一起; (B)易经本质上是关于0和1、0和1的三画(或六画)组合、以及这些组合之间相互变化规律的一门学问; (C)易经仅仅是以自然现象为依托,对人事及未来进行占卜或算卦的一种学说; (D)易经通过“阴”“阳”(即0和1)符号化,既反映了自然现象及其变化规律,又能将其映射到不同的空间,反映不同空间事务的变化规律,例如人事现象及其变化规律。 答案:C 解释: 本题考核内容:考核0和1与易经 A.A的描述完全正确; B.B的叙述也完全正确; C.不正确,易经不仅仅以自然现象为依托,对事及未来进行占卜或算卦的一种学说,他还是将现象抽象为符号,进行符号组合,利用符号组合表达自然现象; D.D的表述完全正确,易经既反映了自然现象及其变化规律,还反映不同空间事物的变化规律; 具体内容请参考第二章视频“2. 0和1与易经”的“1.1~1.4”视频。 2、易经的乾卦是从“天”这种自然现象抽象出来的,为什么称其为“乾”而不称其为“天”呢?_____。 (A)易经创作者故弄玄虚,引入一个新的名词,其实没有必要; (B)易经的“乾”和“天”是不同的,“乾”是一种比“天”具有更丰富语义的事物; (C)“天”是一种具体事物,只能在自然空间中应用,若变换到不同空间应用,可能会引起混淆;而“乾”是抽象空间中的概念,是指具有“天”这种事务的性质,应用于不同的空间时不会产生这种问题; (D)易经创作者依据阴阳组合的符号特征,选择了更符合该符号的名字“乾”。 答案:C 解释: 本题考核内容:考核0和1与易经 A不正确,易经并不是故弄玄虚的; B不正确,易经中“乾”为“天”,“乾”是抽象空间中的概念,是指具有“天”这种事务的性质所以B并不正确; C完全正确,“天”是具体事物,“乾”是抽象概念; D不正确,“乾”并不是因为阴阳组合而命名的;

数学运算符号

数学符号的种类 数量符号 如:i,2+i,a,x,自然对数 底e,圆周率π。 运算符号 如加号(+),减号(-), 乘号(×或·),除号(÷或/),两个集合的并集(?),交集(?),根号(↗),对数(log,lg,ln),比(:),微分(dx),积分(?),曲线积分(?)等。 关系符号 如“=”是等号,“≈”是近 似符号,“≠”是不等号,“>” 是大于符号,“<”是小于符号,“?”是大于或等于符号(也可写 作“≤”),“?”是小于或等于 符号(也可写作“≥”),。“→”表示变量变化的趋势,“∽”是相 似符号,“≌”是全等号,“?” 是平行符号,“≧”是垂直符号,“↘”是成正比符号,(没有成反 比符号,但可以用成正比符号配倒 数当作成反比)“?”是属于符号,“?”是“包含”符号等。 结合符号 如小括号“()”中括号“[]”,大括号“{}”横线“—” 性质符号 如正号“+”,负号“-”, 绝对值符号“| |”正负号“±” 省略符号 如三角形(△),直角三角形(Rt△),正弦(sin),余弦(cos),x的函数(f(x)),极限(lim),角(?), ?因为,(一个脚站着的,站不住) ?所以,(两个脚站着的,能站住)总和(↖),连乘(?),从n个元素中每次取出r个元素所有不同的组合数(C(r)(n) ),幂(A,Ac,Aq,x^n)等。 排列组合符号 C-组合数 A-排列数 N-元素的总个数 R-参与选择的元素个数 !-阶乘,如5! =5×4×3×2×1=120 C-Combination- 组合 A-Arrangement-排列 离散数学符号(未全) ?全称量词 ?存在量词 ├ 断定符(公式在L中可证) ╞ 满足符(公式在E上有效,公式在E上可满足) ┐ 命题的“非”运算 ? 命题的“合取”(“与”)运算 ? 命题的“析取”(“或”,“可兼或”)运算 → 命题的“条件”运算 ?命题的“双条件”运算的 A<=>B 命题A 与B 等价关系 A=>B 命题 A与 B的蕴涵关系 A* 公式A 的对偶公式 wff 合式公式

用数值与符号2种方法给定函数的定积分,并对结果进行比较课程设计

课程设计(论文)任务书 软件学院学院专业班 一、课程设计(论文)题目用数值与符号2种方法给定函数的定积分,并对结果 进行比较 二、课程设计(论文)工作自 1年6月27日起至1年 7月1日止。 三、课程设计(论文) 地点: 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)熟练掌握MATLAB语言的基本知识和技能; (2)熟悉MATLAB下的程序设计; (3)熟悉MATLAB数值与符号求给定函数的定积分; (4)培养分析、解决问题的能力;提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)熟练掌握MATLAB的编程语句,掌握MATLAB的基本内容,了解MATLAB理论与实际相结合的优势; (2)利用matlab中的编程,掌握用数值积分与符号积分求解定函数定积分的方法,并学会用科学的方法分析实验结果 2)课程设计论文编写要求 (1)要按照课程设计模板的规格书写课程设计论文 (2)论文包括目录、正文、心得体会、参考文献等 (3)课程设计论文用B5纸统一打印,装订按学校的统一要求完成 3)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程:40分; (3)完成调试:20分; (4)回答问题:20分; 4)参考文献: (1)刘卫国.MATLAB程序设计与应用(第二版). 北京:高等教育出版社,2008. 5)课程设计进度安排 内容天数地点 构思及收集资料2图书馆 编程设计与调试1实验室

撰写论文2图书馆、实验室 学生签名:冯玉好 2011年7月1日 课程设计(论文)评审意见 (1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(20分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否() (7) 总评分数优()、良()、中()、一般()、差(); 评阅人:职称: 2011年7月1日

Matlab基础(数值计算、符号计算和绘图)

Matlab基础(数值计算、符号计算和绘图) 第一章 MATLAB帮助 1.常用的帮助命令 Help lookfor which set/get doc type edit helpin 2.帮助窗口 3.演示系统 第二章MATLAB基础 1.MATLAB特点 基本计算单元是矩阵、向量,功能的扩展性(除了基本部分外还有专业扩展部分) 2.MATLAB组成 MATLAB MATLAB Compiler Simulink Stateflow RTW 3.MATLAB主要功能 数学计算开发工具(MATLAB Editor M-Lint Code Checker MATLAB Profiler Directory Reports) 数据的可视化交互式编辑创建图形集成的算法开发编程语言和环境图形用户界面开发环境--GUIDE 开放性、可扩展性强专业应用工具箱 4.MATLAB变量 需要注意系统变量,如:ans eps i j pi 5.MATLAB数据类型 需要注意在命令窗口中可以通过输入help datatypes命令来获取MATLAB的数据类型列表。class函数可用来获取一个变量的数据类型。 需要注意MATLAB中变量默认的类型为双精度浮点型(double)。 MATLAB的数据类型名称同样就是数据类型转换的函数。 6.MATLAB路径管理 MATLAB搜索路径(菜单栏File-Set Path) MATLAB目录管理命令(path which addpath rmpath) 7.MATLAB工作空间 工作空间的存取(save load) 工作空间管理命令(who whos clear pack size disp length) 8.MATLAB的其他命令 管理命令和函数(help doc what type lookfor which path) 与文件和操作系统有关的命令(cd dir delete getenv ! unix) 控制命令窗口)(cedit clc clf home more) 启动和退出MATLAB(quit startup) 一般信息(info subscribe hostid whatsnew ver ) 第三章 MATLABA数据 1.矩阵的建立方式 命令窗口中直接输入 通过语句和函数建立矩阵(from:step:to linspace logspace)

完整word版,MATLAB符号运算

符号运算 科学计算包括数值计算和符号计算两种计算,数值计算是近似计算;而符号计算则是绝对精确的计算。 符号变量的生成和使用 1、符号变量、符号表达式和符号方程的生成 (1)、使用sym函数定义符号变量和符号表达式 单个符号变量 sqrt(2) sym(sqrt(2)) %显示精确结果 a=sqrt(sym(2)) %显示精确结果 double(a) sym(2)/sym(3) %显示精确结果 2/5+1/3 sym(2/5+1/3) %显示精确结果 sym(2)/sym(5)+sym(1)/sym(3) %显示精确结果 sym函数定义符号表达式:单个变量定义法,整体定义法 单个变量定义法 a=sym('a') b=sym('b') c=sym('c') x=sym('x') f=a*x^2+b*x+c 整体定义法 f=sym('a*x^2+b*x+c') g=f^2+4*f-2 (2)、使用syms函数定义符号变量和符号表达式 一次可以创建任意多个符号变量syms var1 var2 var3… syms a b c x f=a*x^2+b*x+c g=f^2+4*f-2 (3)、符号方程的生成 函数:数字和变量组陈的代数式 方程:函数和等号组成的等式 用sym函数生成符号方程: equation1=sym('sin(x)+cos(x)=1') 2、符号变量的基本操作 (1)、findsym函数用于寻找符号变量 findsym(f):找出f表达式中的符号变量 findsym(s,n):找出表达式s中n个与x接近的变量 syms a alpha b x1 y findsym(alpha+a+b)

千算万算-10以内加减法-2个数相加减-符号运算-1000题-含答案

1.4( )5=9 21.7( )0=7 41.3( )1=2 61.7( )1=6 81.9( )8=1 2.4( )1=5 22.10( )4=6 42.5( )3=2 62.4( )6=10 82.9( )3=6 3.10( )3=7 23.10( )9=1 43.10( )8=2 63.4( )0=4 83.6( )0=6 4.3( )1=4 24.8( )1=9 44.4( )0=4 64.7( )1=8 84.7( )1=6 5.4( )0=4 25.6( )0=6 45.0( )3=3 65.10( )9=1 85.6( )0=6 6.10( )0=10 26.2( )1=1 46.2( )1=1 66.9( )9=0 86.10( )0=10 7.7( )0=7 27.5( )3=8 47.9( )0=9 67.4( )2=2 87.10( )9=1 8.6( )2=4 28.4( )4=0 48.0( )7=7 68.9( )5=4 88.10( )3=7 9.2( )2=0 29.2( )0=2 49.1( )2=3 69.10( )7=3 89.4( )4=0 10.3( )3=6 30.4( )2=2 50.5( )2=3 70.5( )4=1 90.7( )3=10 11.10( )7=3 31.4( )1=5 51.0( )3=3 71.5( )0=5 91.8( )6=2 12.3( )0=3 32.10( )10=0 52.0( )9=9 72.5( )3=2 92.10( )1=9 13.6( )5=1 33.1( )4=5 53.3( )2=1 73.5( )4=1 93.5( )0=5 14.5( )4=1 34.2( )0=2 54.9( )3=6 74.3( )5=8 94.3( )7=10 15.4( )5=9 35.9( )6=3 55.10( )2=8 75.3( )1=4 95.8( )3=5 16.6( )1=5 36.9( )0=9 56.3( )0=3 76.4( )4=8 96.6( )5=1 17.7( )3=10 37.8( )6=2 57.7( )5=2 77.2( )4=6 97.9( )0=9 18.3( )5=8 38.6( )4=2 58.7( )7=0 78.4( )1=5 98.2( )7=9 19.8( )2=6 39.9( )0=9 59.0( )7=7 79.0( )9=9 99.9( )3=6 20.8( )3=5 40.2( )1=3 60.3( )0=3 80.2( )0=2 100.4( )3=1

数学实验3(符号运算)参考答案

实验3 MATLAB符号运算功能 一、实验目的:掌握MATLAB符号运算功能的基本使用方法 1.符号矩阵的建立及符号矩阵的运算; 2.符号矩阵的简化; 3.符号矩阵的极限和微积分; 4.代数方程求解; 5.一元函数图象简易画法. 二、实验内容: 1.设)1 e x g x x - =x ( ) (- 1) 将) g写成MATLAB符号表达式; (x 2) 求出符号表达式) g; ('x 3) 利用"subs"命令求出)4(g和)4('g; 4) 利用"plot"命令画出函数) g在区间[-3,3]上的光滑图象; (x 5) 利用"ezplot"命令画出函数) g在区间[-3,3]上的图象并与4)所得结果进行 (x 比较. 运行命令: syms x; g=[x*(exp(x)-x-1)] diff(g) G=subs(g,[4]) G1=subs(diff(g),4) x=-3:0.01:3; y=x.*(exp(x)-x-1); plot(x,y) ezplot(g,[-3,3]) 程序运行结果: g = x*(exp(x)-x-1) ans = exp(x)-x-1+x*(exp(x)-1) G = 198.3926 G1 = 263.9908

-3-2-10123 -100 10 20 30 40 50 -3-2-10 123-5 5 10 15 20 25 30 x x (exp(x)-x-1) 用ezplot 作图较精确。 2. 设)1()(1--=x e x x g x ,1)(22+=x x g 1)利用"ezplot "命令画图估计函数)(1x g 与)(2x g 图象交点的x 值; 2) 利用"solve "命令求出函数)(1x g 与)(2x g 图象交点处x 的精确值.

符号运算

与Wolfram公司(Mathematics的开发公司)相比,Mathworks公司一直以矩阵计算和强大的数据处理能力见长,而符号计算非强项。1993年,mathworks公司从加拿大Waterloo Maple公司购买了maple的内核技术,作为MA TLAB符号运算与推导的平台,开发了用以进行符号计算的基本符号运算工具箱和扩展符号运算工具箱,从而解决了MA TLAB在符号计算方面的缺陷。 MA TLAB7.0的符号运算工具箱已上升到3.1.1版本,它几乎可以完成所有的符号运算功能,包括符号函数与符号方程的定义、运算、复合、化简、符号矩阵的计算、符号微分、符号积分、符号代数方程、符号微分方程的求解、符号积分变换和符号特殊函数。 在MA TLAB7.0的符号数学工具箱中,符号表达式含有符号函数和符号方程两种形式,它是表示数字、函数或变量的字符串或字符串组。字符就是符号变量的值。因此在MA TLAB的源程序中符号表达式被表示成字符串和字符串组。符号函数和符号方程的区别是符号函数没有等号,而符号方程必须有等号。 符号变量的定义 MA TLAB有默认的符号自变量,但在各种情况下默认的自变量是不同的。系统默认的自变量主要有x、x1、y、y1、z、v、u、t、theta、alpha。对于这些变量MA TLAB 的默认规则与平时数学习惯大致相同,即: 当这些变量中的某一个与其他变量组成符号数学表达式时,这个变量即为默认的自变量; 当这些变量中的某几个组成符号数学表达式是,默认自变量的顺序是:x>x1>y>y1>z>v>u>t>theta>alpha 例如:

当数学表达式为cos(2*x*a^2)时,默认的自变量为x; 当数学表达式为cos(2*x*v)时,默认的自变量为x; 当数学表达式为cos(2*t*alpha)时,默认的自变量为t; 符号变量可以通过命令syms和sym定义,syms命令一个可以定义一个或多个符号变量。sym一个只能定义一个符号变量。 >> syms x y z t >> who Y our variables are: t x y z >> syms u >> who Y our variables are: t u x y z >> x=sym('x'); >> t=sym('t'); >> z=sym('z'); >> y=sym('y'); >> who Y our variables are: ans t x y z 符号表达式的定义 MA TLAB7.0当中,符号表达式可以通过基本赋值语句,采用单引号或sym/syms

第4章 符号运算

第4章符号运算 符号运算的对象是非数值的符号对象,对于像公式推导和因式分解等抽象的运算都可以通过符号运算来解决。 M A T L A B2006b对应的是S y m b o l i c M a t h T o o l b o x3.1.5。 符号工具箱能够实现微积分运算、线性代数、表达式的化简、求解代数方程和微分方程、不同精度转换和积分变换,符号计算的结果可以以图形化显示,M A T L A B 的符号运算功能十分完整和方便。 符号运算的特点: (1)符号运算以推理解析的方式进行,计算的结果不受计算累积误差影响; (2)符号计算可以得出完全正确的封闭解和任意精度的数值解; (3)符号计算命令调用简单; (4)符号计算所需要的时间较长。 4.1符号对象的创建和使用 创建符号对象都可以使用s y m和s y m s函数来实现。 1.s y m函数 S=s y m(s,参数)%由数值创建符号对象 S=s y m(…s?,参数)%由字符串创建符号对象 当被转换的s是数值时,参数可以是'd'、'f'、'e'或'r'四种格式,当被转换的's'是字符串时,参数可以是'r e a l'、'u n r e a l'和'p o s i t i v e'三种格式 2.s y m s函数 s y m s(s1,s2,s3,…,参数) 或s y m s s1,s2,s3,…,参数%创建多个符号变量 s y m s与s y m的关系是:s y m s(s1,s2,s3,…,参数)等同于s1=s y m('s1',参数),s2=s y m('s2',参数)…… 3.c l a s s函数 s=c l a s s(x)%返回对象x的数据类型 4.1.2符号常量和符号变量 符号常量是不含变量的符号表达式,用s y m函数来创建;符号变量使用s y m和s y m s 函数来创建。 例如: >>a1=s y m(s i n(2))%用数值创建符号常量 >>a2=s y m(s i n(2),'f')%用十六进制浮点表示 >>a1=s y m('a','u n r e a l')%用字符串创建符号变量 4.1.3符号表达式 符号表达式是由符号常量和符号变量等构成的表达式,使用s y m和s y m s函数来创建。 例4-3分别使用s y m和s y m s函数创建符号表达式。 >>s y m s a b c x

第2章0和1-语义符号化、符号计算化与计算自动化练习题答案解析

第2章0和1-语义符号化、符号计算化与计算自动化练习题答案解析

第2章符号化、计算化与自动化 1、易经是用0和1符号化自然现象及其变化规律的典型案例。下列说法不正确的是_____。(A)易经既是用0和1来抽象自然现象,同时又不单纯是0和1,起始即将0和1与语义“阴”和“阳”绑定在一起; (B)易经本质上是关于0和1、0和1的三画(或六画)组合、以及这些组合之间相互变化规律的一门学问; (C)易经仅仅是以自然现象为依托,对人事及未来进行占卜或算卦的一种学说; (D)易经通过“阴”“阳”(即0和1)符号化,既反映了自然现象及其变化规律,又能将其映射到不同的空间,反映不同空间事务的变化规律,例如人事现象及其变化规律。 答案:C 解释: 本题考核内容:考核0和1与易经

A.A的描述完全正确; B.B的叙述也完全正确; C.不正确,易经不仅仅以自然现象为依托,对事及未来进行占卜或算卦的一种学说,他 还是将现象抽象为符号,进行符号组合,利 用符号组合表达自然现象; D.D的表述完全正确,易经既反映了自然现象及其变化规律,还反映不同空间事物的变化规律; 具体内容请参考第二章视频“2. 0和1与易经”的“1.1~1.4”视频。 2、易经的乾卦是从“天”这种自然现象抽象出来的,为什么称其为“乾”而不称其为“天”呢?_____。 (A)易经创作者故弄玄虚,引入一个新的名词,其实没有必要; (B)易经的“乾”和“天”是不同的,“乾”是一种比“天”具有更丰富语义的事物; (C)“天”是一种具体事物,只能在自然空间中应用,若变换到不同空间应用,可能会引起混淆;而“乾”是抽象空间中的概念,是指具有“天”

符号运算

六符号运算 符号矩阵的生成 在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。 1.用命令sym定义矩阵: 这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。如下例:注意:标点符号的区别 例1-1 >> sym_matrix = sym('[a b c;Jack,Help Me!,NO WAY!]') sym_matrix = [a b c] [Jack Help Me! NO WAY!]

>> sym_digits = sym('[1 2 3;a b c;sin(x)cos(y)tan (z)]') sym_digits = [1 2 3] [a b c] [sin(x)cos(y)tan(z)] 2.用命令syms定义矩阵 先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。 例1-2 >> syms a b c ; >> M1 = sym('Classical'); >> M2 = sym(' Jazz'); >> M3 = sym('Blues') >> syms_matrix = [a b c;M1,M2,M3;2 3 5] syms_matrix = [ a b c] [Classical Jazz Blues] [ 2 3 5]

3把数值矩阵转化成相应的符号矩阵。 数值型和符号型在MATLAB中是不相同的,它们之间不能直接进行转化。MATLAB提供了一个将数值型转化成符号型的命令,即sym。 例1-3 >> Digit_Matrix = [1/3 sqrt(2)3.4234;exp(0.23)log(29)23^(-11.23)] >> Syms_Matrix = sym(Digit_Matrix) 结果是: Digit_Matrix = 0.3333 1.4142 3.4234 1.2586 3.3673 0.0000 Syms_Matrix = [ 1/3,sqrt(2), 17117/5000] [5668230535726899*2^(-52),7582476122586655*2^ (-51),5174709270083729*2^(-103)] 注意:矩阵是用分数形式还是浮点形式表示的,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示或

相关主题
文本预览
相关文档 最新文档