ch符号计算.docx

上传人:b****2 文档编号:1814551 上传时间:2022-10-24 格式:DOCX 页数:20 大小:100.07KB
下载 相关 举报
ch符号计算.docx_第1页
第1页 / 共20页
ch符号计算.docx_第2页
第2页 / 共20页
ch符号计算.docx_第3页
第3页 / 共20页
ch符号计算.docx_第4页
第4页 / 共20页
ch符号计算.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

ch符号计算.docx

《ch符号计算.docx》由会员分享,可在线阅读,更多相关《ch符号计算.docx(20页珍藏版)》请在冰豆网上搜索。

ch符号计算.docx

ch符号计算

第2章符号计算

符号计算:

解算数学表达式、方程不是在离散化的数值点上进行,而是凭借一系列恒等式,数学定理,通过推理和演绎,获得解析结果.

特点:

一,相对于MATLAB的数值计算“引擎”和“函数库”而言,符号计算的“引擎”和“函数库”是独立的.

二,在相当一些场合,符号计算解算问题的指令和过程,显得比数值计算更自然、更简明.三,大多数理工科的本科学生在学过高等数学和其他专业基础课以后,比较习惯符号计算的解题理念和模式.

SymbolicMathToolbox™ThecomputationalengineunderlyingthetoolboxesisthekernelofMaplesoftware,asystemdevelopedprimarilyattheUniversityofWaterloo,Canadaand,morerecently,attheEidgen?

ssicheTechnischeHochschule,Zürich,Switzerland.MaplesoftwareismarketedandsupportedbyWaterlooMaple,Inc.

运算引擎MuPAD

MuPAD作为MATLAB7.8的符号计算工具箱,是一具有人工智能的数学软件.方程式可以处理复数计算,完美的绘图功能,图型输入,输出,可以输入多个2-D函数或极坐标函数或3-D函数,选择所要绘图参数,就可以完成图形,以及图形的动画制作也是非常方便.数值计算结果并不是MATLAB命令行窗口所得的类似代码形式,而是规范数学格式.并拥有一内建的程序语言,帮助文档以及文本操作,文本操作在一定程度上可以取代word.

MathWorks自从2008年10开始,在Matlab的新版本(Matlab2008a,即7.6之后)中使用MuPAD内核替换原来的Maple符号计算内核!

.1符号对象和符号表达式

MATLAB依靠基本符号对象(包括数字、参数、变量)、运算符及一些预定义函数来构造和衍生符号表达式和符号方程.

.1.1符号对象的创建和衍生

10一生成符号对象的基本规则

●任何基本符号对象都必须借助专门的符号函数指令sym或syms定义.

●任何包含符号对象的表达式或方程,将继承符号对象的属性.

10二符号数字

符号(类)数字的定义:

sym('Num')创建一个符号数字Num

sc=sym('Num')创建一个符号常数sc,该常数值准确等于Num

说明:

Num代表一个具体的数字

Num必须处于(英文状态下的)单引号内,构成字符串(关于字符串参见附录A.1).

【例2.1-1】符号(类)数字与数值(类)数字之间的差异.

a=pi+sqrt(5)%创建方式

sa=sym('pi+sqrt(5)')

Ca=class(a)%类别判断

Csa=class(sa)

vpa(sa-a)

a=

5.3777

sa=

pi+sqrt(5)

Ca=

double

Csa=

sym

ans=

.138223758410852e-16

10三符号参数

表达式e-axsinbx中的a,b称为参数.

定义格式:

symsPara定义符号参数Para

Para=sym('Para')

symsParaFlag定义具有Flag指定属性的符号参数Para

Para=sym('Para','Flag')

symsPara1Para2ParaN定义Para1Para2ParaN为符号参数

symsPara1Para2ParaNFlag定义Para1Para2ParaN为具有Flag指定属性的符号参数

●符号参数名不要用处于“字母表中小写字母x及其两侧的英文字母”开头.

●Flag表示参数属性,可具体取以下词条:

positive表示那些符号参数取正实数;

real表示那些符号参数限定为实时;

unreal表示那些符号参数为不限定的复数.

symsxab

int(1/(x),a,b)

Warning:

Warning,unabletodetermineif0isbetweenaand

b;trytouseassumptionsorset_EnvAllSolutionstotrue

Warning:

Explicitintegralcouldnotbefound.

>Insym.intat58

ans=

int(1/x,x=a..b)

Var=sym('x');

Upp=sym('a','real');

Low=sym('b','real');

Intergral=int(1/(x),a,b)

Warning:

Warning,unabletodetermineif0isbetweenaand

b;trytouseassumptionsorsetoption_EnvAllSolutionsto

true

Warning:

Explicitintegralcouldnotbefound.

>Insym.intat58

Intergral=

int(1/x,x=a..b)

Var=sym('x');

Upp=sym('a','positive');

Low=sym('b','positive');

Intergral=int(1/(x),a,b)

Intergral=

-log(a)+log(b)

10四符号变量

e-axsinbx中的x称为变量,符号变量的定义同符号参数.

确定自由符号变量的规则:

●在专门指定变量名的符号运算中,解题一定围绕指定变量名进行.

●自动识别符号变量时,字母的优先次序为x,y,w,z,v等.

自动识别表达式中自由、独立的符号变量的指令:

findsym(EXPR)确认表达式EXPR中所有自由符号变量

findsym(EXPR,N)确认表达式EXPR中距离x最近的N个自由符号变量

【例2.1-2】用符号计算研究方程的解.

(1)不指定变量情况

symsuvwz%定义符号参数/变量

Eq=u*z^2+v*z+w;

result_1=solve(Eq)%

findsym(Eq,1)

result_1=

-u*z^2-v*z

ans=

w

(2)指定变量情况

result_2=solve(Eq,z)

result_2=

-1/2*(v-(v^2-4*u*w)^(1/2))/u

-1/2*(v+(v^2-4*u*w)^(1/2))/u

【例2.1-3】对独立自由符号变量的自动辨认.

(1)

symsabxXY%定义符号参数/变量

k=sym('3');%符号常数

z=sym('c*sqrt(delta)+y*sin(theta1)');%直接定义符号表达式

EXPR=a*z*X+(b*x^2+k)*Y;%构成衍生符号表达式

(2)

findsym(EXPR)

ans=

X,Y,a,b,c,delta,theta1,x,y

(3)

findsym(EXPR,1)

ans=

x

(4)

findsym(EXPR,2),findsym(EXPR,9)

ans=

x,y

ans=

x,y,theta1,delta,c,b,a,X,Y

【例2.1-4】findsym确定自由变量是对整个矩阵进行的.

symsabtuvxy

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

findsym(A,5)

A=

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

[x*exp(-t),log(y)+v]

ans=

x,y,v,u,t

.1.2符号计算中的算符

●与数值计算中的算符在形状、名称和使用方法上几乎完全相同.

●仅注意:

在符号对象的关系运算符中,只有算符“==”,“~=”

比较结果为“真”时,用1表示;否则用0表示.

.1.3符号计算中的函数指令

表2.1-1MATLAB中可调用的符号计算函数指令

类别

情况描述

与数值计算对应关系

基本函数

三角函数、双曲函数及反函数;除atan2外

名称和使用方法相同

指数、对数函数(如exp,expm)只有log,无log2和log10

symsx

log10(x)

名称和使用方法相同

复数函数(注意:

没有幅角函数angle)

z=1+i;

angle(z)

a=sym('1+i');

abs(a)

angle(a)

名称和使用方法相同

矩阵分解函数(如eig等)

名称和使用方法相同

方程求解函数solve

不同

微积分函数(如diff,int)

不完全相同

积分变换和反变换函数(如laplace,ilaplace)

只有离散Fourier变换

绘图函数(如ezplot,ezsurf)

数值绘图指令更丰富

经典特殊函数

如误差函数erf、贝塞尔函数besselj、第一类完全椭圆积分EllipticK等;通过mfunlist可以看到所有经典函数名

部分

Maple库函数

Maple库函数在符号计算的扩展目录上;可通过mhelpindex看到各子函数库的名称;函数的数量很大;使用库函数,需要具备Maple语言知识

注意:

使用函数注意数据类型.就数字而言,有双精度和符号类数字之分.

.1.4符号对象的识别

为了函数指令与数据对象的适配,MATLAB提供了用于识别数据对象属性的指令:

class(var)给出变量var的数据类别(如double,sym等)

isa(var,'Obj')若变量var是Obj代表的类型,给出1,表示“真”

whos给出所有MATLAB内存变量的属性

【例2.1-5】数据对象及其识别指令的使用.

(1)

clear

a=1;b=2;c=3;d=4;%产生4个数值变量

Mn=[a,b;c,d]%利用已赋值变量构成数值矩阵

Mc='[a,b;c,d]'%字符串中的a,b,c,d与前面输入的数值变量无关

Ms=sym(Mc)%Ms是一个符号矩阵,它与前面各变量无关

Mn=

12

34

Mc=

[a,b;c,d]

Ms=

[a,b]

[c,d]

(2)

SizeMn=size(Mn)

SizeMc=size(Mc)

SizeMs=size(Ms)

SizeMn=

22

SizeMc=

19

SizeMs=

22

(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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1