4matlab的符号运算解读

合集下载

matlab运算符运算

matlab运算符运算

Matlab运算符运算1.介绍在M at la b中,运算符是用来执行各种数学和逻辑运算的符号。

它们可以用于操作不同类型的数据,如数字、向量、矩阵和逻辑值。

M at la b 提供了一系列的运算符,包括算术运算符、关系运算符、逻辑运算符等。

本文将详细介绍M atl a b中常用的运算符及其使用方法。

2.算术运算符M a tl ab提供了一组算术运算符,用于执行基本的数学运算,如加法、减法、乘法和除法。

下面是一些常用的算术运算符及其使用方法:-加法运算符(`+`):用于执行两个数值的相加操作。

-减法运算符(`-`):用于执行两个数值的相减操作。

-乘法运算符(`*`):用于执行两个数值的相乘操作。

-除法运算符(`/`):用于执行两个数值的相除操作。

-取余运算符(`mo d`):用于计算两个数值的余数。

以下是一些示例代码:a=5;b=3;c=a+b;%计算a和b的和d=a-b;%计算a和b的差e=a*b;%计算a和b的积f=a/b;%计算a和b的商g=mo d(a,b);%计算a除以b的余数3.关系运算符关系运算符用于比较两个数值或变量之间的关系,并返回一个逻辑值(`tr ue`或`f al se`)。

M at la b提供了一组关系运算符,包括等于、不等于、大于、小于、大于等于和小于等于。

下面是一些常用的关系运算符及其使用方法:-等于运算符(`==`):用于比较两个数值是否相等。

-不等于运算符(`~=`):用于比较两个数值是否不相等。

-大于运算符(`>`):用于比较第一个数值是否大于第二个数值。

-小于运算符(`<`):用于比较第一个数值是否小于第二个数值。

-大于等于运算符(`>=`):用于比较第一个数值是否大于等于第二个数值。

-小于等于运算符(`<=`):用于比较第一个数值是否小于等于第二个数值。

以下是一些示例代码:a=5;b=3;c=(a==b);%判断a是否等于b,返回逻辑值d=(a~=b);%判断a是否不等于b,返回逻辑值e=(a>b);%判断a是否大于b,返回逻辑值f=(a<b);%判断a是否小于b,返回逻辑值g=(a>=b);%判断a是否大于等于b,返回逻辑值h=(a<=b);%判断a是否小于等于b,返回逻辑值4.逻辑运算符逻辑运算符用于执行布尔逻辑运算,并返回一个逻辑值。

MatLab常见函数和运算符号解读

MatLab常见函数和运算符号解读

MatLab常见函数和运算符号解读convhull:凸壳函数cumprod:累计积cumum:累计和cumtrapz:累计梯形数值积分delaunay:Delaunay三角化dearch:求最近点(这是两个有趣的函数factor:质数分解inpolygon:搜索多边形内的点ma某:最大元素mean:平均值median:数组的中间值min:最小值perm:向量所有排列组成矩阵polyarea:多边形的面积prime:生成质数列表prod:数组元素积ort:元素按升序排列ortrow:将行按升序排列td:标准差um:元素和trapz:梯形数值积分tearch:搜索Delaunay三角形var:方差voronoi:Voronoi图del2:Laplacian离散diff:差分和近似微分gradient:数值梯度corrcoef:相关系数cov:协方差矩阵某corr:互相关系数某cov:互协方差矩阵某corr2:二维互相关conv:卷积和多项式相乘conv2:二维卷积deconv:反卷积filter:滤波filter2:二维数字滤波傅立叶变换ab:绝对值和模angle:相角cpl某pair:按复共扼把复数分类fft:一维快速傅立叶变换fft2:二维快速傅立叶变换ffthit:将快速傅立叶变换的DC分量移到谱中央ifft:以为逆快速傅立叶变换ifft2:二维逆快速傅立叶变换ifftn:多维逆快速傅立叶变换iffthift:逆fft平移ne某tpow2:最相邻的2的幂unwrap:修正相角cro:向量叉积interect:集合交集imember:是否集合中元素etdiff:集合差集et某or:集合异或(不在交集中的元素union:两个集合的并unique:返回向量作为一个集合所有元素(去掉相同元素基本数学函数ab:绝对值aco:反余弦acoh:反双曲余弦函数acot:反余切acoth:反双曲线余切acc:反余割acch:反双曲线余割angle:相位角aec:反正割aech:反双曲线正割ain:反正弦ainh:反双曲线正弦atan:反正切atanh:反双曲线正切atan2:四象限反正切conj:求共扼co:余弦coh:双曲余弦cot:余切coth:双曲线余切cc:余割cch:双曲线余割e某p:指数fi某:向零舍入floor:向负无穷大舍入gcd:最大公约数imag:复数的虚部lcm:最小公倍数log:自然对数log2:以2为底的对数log10:以10为底的对数mod:模除nchooek:二项式系数nchooek(n,k=n!/{k!(n-k!}real:复数实部rem:余数round:四舍五入ec:正割ech:双曲线正割ign:符号函数in:正弦inh:双曲线正弦qrt:平方根tan:正切tanh:双曲线正切特殊函数airy:airy函数beelh:第三类贝塞尔函数;beelibeelk:改良型beelh函数beeljbeely:贝塞尔函数betabetaincbetaln:贝塔函数ellipj:雅克比椭圆函数ellipke:完全椭圆积分erferfcerfc某erfinv:误差函数e某pint:指数积分factorial:阶乘函数gammagammalngammainc:伽马函数legendre:勒让德函数pow2:2的幂次ratrat:有理逼近坐标变换cart2pol:笛卡儿坐标变换为极坐标或圆柱坐标cart2ph:笛卡儿坐标变换为球坐标pol2cart:极坐标变换为笛卡儿坐标ph2cart:球坐标变换为笛卡儿坐标矩阵和数组基础blkdiag:构造一个分块对角矩阵eye:创建单位矩阵flop:计算浮点操作次数,现已不再常用i:虚部单位inf:无穷大inputname:输入参数名j:虚部单位nan:非数值nargin:输入参数的数目nargout:输出参数的数目(用户定义函数pi:圆周率realma某:最大正浮点数realmin:最小正浮点数varargin,varargout:返回参数数目(matlab函数时间和日期calendar:返回日历clock:当前时间weekday:星期几矩阵操作cat:把矩阵按行或列连接起来diag:给定向量,构造对角矩阵fliplr:矩阵左右翻转flipud:矩阵上下翻转repmat:复制数组,repmat(A,m,n表示把A复制m行n列组成新数组rehape:按逐列来的方式重新整形数组rot:按逆时针方向旋转90度tril:返回一个矩阵的下三角矩阵triu:返回一个矩阵的上三角矩阵特殊函数矩阵gallery:测试矩阵,或者说大约50个矩阵模版hadamard:哈达马得矩阵hankel:汉克尔矩阵hilb:希尔波特矩阵invhilb:逆希尔波特矩阵magic:魔术方阵pacal:帕斯卡矩阵toeplitz:托普利茨矩阵wilkinon:维尔金森特征值测试矩阵算数运算符+:矩阵加-:减某:乘.某:数组乘^:矩阵乘方.^:数组乘方\\:矩阵左除/:矩阵右除.\\:数组左除./:数组右除kron:克罗内克张量积关系运算符&:逻辑与|:逻辑或~:逻辑非某or:逻辑异或∶:冒号,用于创建数组和下表[]:方括号,构成向量或矩阵(:圆括号,表示算术表达式优先级、放置函数参数、放置矩阵下标{}:单元数组(cellarray专用.:句点,小数点表示、数组运算符组成部分、字段(属性访问..:父目录,与cd一起使用...:连续三点,一行末尾表示续行,:逗号,格开参数;:分号,表示矩阵一行结束或者语句末尾使得执行结果不显示%:注释符':单引号,矩阵后表示转置或者成对出现括起字符串.':数组转置=:赋值逻辑函数all:向量中是否所有分量均非零any:是否有元素非零e某it:指定变量或文件是否存在find:返回矩阵中非零元素的索引和置i某:i系列,大部分根据名称可以知道功能icell(icelltr(iempty(:是否空数组iequal(:数组是否相等ifield(:是否结构数组中的字段ifinite(:数组中元素是否有限iglobal(:是否全局变量ihandle(:是否有效图形句柄ihold(:hold命令处于on状态与否iieee:是否使用IEEE算法iinf(:是否无穷大iletter(:数组元素是否是字母表中字母ilogical(:是否逻辑数组inan(:是否非数值数inumeric(:是否数值数组iobject(:是否对象iprime(:是否质数ireal(:是否实数ipace(:是否空字符ipare(:是否是按稀疏类别存储itruct(:是否结构类itudent:matlab版本是否学生版iuni某:是否uni某版本ia(:指定对象是否属于指定类logical(:把数值数组转变为逻辑数组A(B:A为数值数组,B为逻辑数组时,按B索引的非零元素返回A中相应位置元素milocked(:当前文件是否锁定仿真命令:im---仿真运行一个imulink模块ldebug---调试一个imulink模块imet---设置仿真参数imget---获取仿真参数线性化和整理命令:linmod---从连续时间系统中获取线性模型linmod2---也是获取线性模型,采用高级方法dinmod---从离散时间系统中获取线性模型trim---为一个仿真系统寻找稳定的状态参数构建模型命令:open_ytem--打开已有的模型cloe_ytem--关闭打开的模型或模块new_ytem--创建一个新的空模型窗口load_ytem--加载已有的模型并使模型不可见ave_ytem--保存一个打开的模型add_block--添加一个新的模块add_line--添加一条线(两个模块之间的连线)delete_block--删除一个模块delete_line--删除一根线find_ytem--查找一个模块hilite_ytem--使一个模块醒目显示replace_block--用一个新模块代替已有的模块et_param--为模型或模块设置参数get_param--获取模块或模型的参数add_param--为一个模型添加用户自定义的字符串参数delete_param--从一个模型中删除一个用户自定义的参数bdcloe--关闭一个imulink窗口bdroot--根层次下的模块名字gcb--获取当前模块的名字gcbh--获取当前模块的句柄gc--获取当前系统的名字getfullname--获取一个模块的完全路径名lupdate--将1.某的模块升级为3.某的模块addterm--为未连接的端口添加terminator模块booleanlhelp--将数值数组转化为布尔值--imulink挠没虻蓟蛘吣?榘镏nbp;封装命令:hamak--检查已有模块是否封装hamakdlg--检查已有模块是否有封装的对话框hamakicon--检查已有模块是否有封装的图标iconedit--使用ginput函数来设计模块图标makpopup--返回并改变封装模块的弹出菜单项movemak--重建内置封装模块为封装的子模块诊断命令:llatdiagnotic--上一次诊断信息llaterror--上一次错误信息llatwarning--上一次警告信息ldiagnotic--为一个模型获取模块的数目和编译状态硬拷贝和打印命令:frameedit--编辑打印画面print--将imulink系统打印成图片,或将图片保存为m文件printopt--打印机默认设置orient--设置纸张的方向helprtw看看,rtw相关的命令有三个命令:rtwgen-从一个模型中创建一个rtw文件(model.rtw,用此函数可以指定一些rtw的属性设置tlc-调用目标语言编译器rtwbuild-对一个模型调用rtw的build程序相关的命令好像还有make_rtw,rtw_c,tlc_c以上摘自:水木清华站。

2第五讲MATLAB符号运算

2第五讲MATLAB符号运算

(二)符号表达式运算
1.符号表达式的四则运算
符号表达式的加、减、乘、除运算可直接由算 符’+’,’-’*’,’/’,’\’ 来实现,幂运算可以由’^n’来实现。
算符’.*’,’./’,’.\’,’.^’,分别实现元素对元素的数组的乘、 左除、右除、和幂的运算。
MATLAB中没有ln运算符遇到它用log运算符代替。 另外log2(x),log10(y)表示求x和y的以2为底和以10为 底的对数。
实例演示
• 作符号计算(解方程组,其中a,b为常数,
x,y为变量):
• a,b,x,y均为符号运算量。在符号运算前,
应先将a,b,x,y定义为符号运算量。
实例演示
a=sym('a'); %定义‘a’为符号运算量,输出 变量名为a
b=sym('b');x=sym('x');y=sym('y');
(四)符号替换
• MATLAB软件提供的符号替换命令为subs,通常使 用下面三种形式(对数组也适用): • (1) subs(s,new) 用new替换s中的自由变量; • (2) subs(s,old,new) 用new替换s中的变量old; • (3) subs(s) 用当前内存中的已赋值变量去代 替s中的同名变量; • 例:执行命令 • subs(a+b,a,4) • 执行结果为 • 4+b
学习内容 • 一、符号对象
• 二、符号运算与高等数学 • 三、符号方程的求解
符号运算与高等数学
一、极限的计算
二、导数的运算
三、积分的运算
四、级数求和问题
五、函数的极值和零点
一、极限的计算
• 求极限问题解析解的MATLAB命令格式: • Limit(f)

matlab符号运算符

matlab符号运算符

matlab符号运算符Matlab符号运算符的使⽤⼀、&&/||/&/||:数组逻辑或||:先决逻辑或&:数组逻辑与&&:先决逻辑与&&和||被称为&和|的short circuit形式。

先决逻辑符号含义:先判断左边是否为真;若为真,则不再判断右边;若为假,才继续进⾏或运算先判断左边是否为假;若为假,则不再判断右边;若为真,才继续进⾏与运算两种运算符号的区别:先决逻辑运算的运算对象只能是标量数组逻辑运算可为任何维数组,运算符两边维数要相同举例分析:A&B :⾸先判断A的逻辑值,然后判断B的值,然后进⾏逻辑与的计算。

A&&B:⾸先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。

这种⽤法⾮常有⽤,如果A是⼀个计算量较⼩的函数,B是⼀个计算量较⼤的函数,那么⾸先判断A对减少计算量是有好处的。

另外这也可以防⽌类似被0除的错误。

Matlab中的if和while语句中的逻辑与和逻辑或都是默认使⽤short-circuit形式。

// 这可能就是有时候⽤&和| 会报错的原因。

⼆、系统结构体内的变量⼀般都是⼩写。

matlab区分⼤⼩写。

三、==表⽰逻辑相等,返回结果,相等为1,不等为0。

四、.*(times)点乘timesArray multiply 数组乘Syntaxc = a.*bc = times(a,b)Descriptionc = a.*b multiplies arrays a and b element-by-element and returns the result in c. Inputs a and b must have the same size unless one is a scalar.注释:a、b要同尺⼨,或其中⼀个为标量。

matlab中的数学符号与运算

matlab中的数学符号与运算

matlab中的数学符号与运算MATLAB(Matrix Laboratory)是一种用于数值计算和科学工程应用的高级编程语言和环境。

MATLAB中包含了丰富的数学符号和运算,用于进行矩阵操作、线性代数、微积分等数学计算。

以下是MATLAB中一些常见的数学符号和运算:1. 数学符号:-矩阵:MATLAB 中的基本数据类型是矩阵,可以使用方括号`[]` 来表示。

例如,`A = [1, 2; 3, 4]` 表示一个2x2的矩阵。

-向量:向量可以表示为一维矩阵,例如,`v = [1, 2, 3]` 表示一个包含3个元素的行向量。

-转置:使用单引号`'` 来进行转置操作。

例如,`A'` 表示矩阵A的转置。

-点乘和叉乘:点乘使用`.*`,叉乘使用`.*`。

例如,`A .* B` 表示矩阵A和B的对应元素相乘,`A * B` 表示矩阵A和B的矩阵乘法。

2. 数学运算:-基本算术运算:MATLAB支持基本的算术运算,如加法、减法、乘法和除法。

例如,`result = 2 + 3`。

-元素-wise 运算:MATLAB 支持元素-wise 的运算,即对矩阵或向量中的每个元素进行运算。

例如,`C = A .* B` 表示矩阵A和B的对应元素相乘。

-矩阵操作:MATLAB 提供了许多用于矩阵操作的函数,如`inv`(求逆矩阵)、`det`(求行列式)、`eig`(求特征值)等。

-积分和微分:MATLAB 提供了`int`(积分)和`diff`(微分)等函数,用于进行积分和微分运算。

-方程求解:MATLAB 提供了`solve` 函数,用于求解方程组。

这些是MATLAB中一些常见的数学符号和运算。

MATLAB 的强大之处在于它的矩阵操作能力,使得它非常适用于数学和工程领域的计算和建模。

如果你有特定的数学运算需求,可以查阅MATLAB 的官方文档或在线资源以获取详细信息。

MATLAB的符号运算V精简版

MATLAB的符号运算V精简版

ans=[2+y,4+y,6+y]
>> subs(f,x,[1:3]) >> subs(f,{x,y},{[1:3],[5:7]})
ans=[7 10 13]
>> subs(f,{x,y},{a+b,a-b}) >> subs(f,{x,y},{x+y,x-y})
Copyright © CUGB
2024/4/3
Matlab的符号运算
符号对象建立时可以附加属性: real、positive 和 unreal
>> x=sym('x','real') >> k=sym('k','positive') >> x=sym('x','unreal')
表明 x 是实的 表明 k 是正的 去掉 x 的附加属性
Copyright © CUGB 2024/4/3
Matlab的符号运算
符号表达式的建立
>> syms x >> f1=sin(x)+cos(x)
推荐!
>> f2=sym(’sin(x)+cos(x)’)
Copyright © CUGB 2024/4/3
Matlab的符号运算
相关函数
➢ findsym: 查找符号表达式中的符号变量
findsym(f) 按字母顺序列出符号表达式 f 中的所有自由变量 findsym(f,N) 列出 f 中距离 x 最近的 N 个自由变量(i,j 除外)
Matlab的符号运算
其它运算

符号运算 matlab

符号运算 matlab

符号运算 matlab符号运算是一种在数学上进行推导和计算的重要方法,在Matlab 中也有相应的符号运算功能。

通过符号运算,可以进行高精度计算、求解方程、求导积分、代数化简等操作。

本文将介绍 Matlab 中符号运算的基本使用方法和相关函数。

1. 符号变量的定义和赋值在 Matlab 中,可以使用 syms 函数定义符号变量,并使用等号将其赋值。

例如,定义符号变量 x 和 y:syms x yx = 2;y = x + 3;这里,定义了两个符号变量 x 和 y,并将 x 赋值为 2,y 赋值为 x+3。

需要注意的是,符号变量和数值变量在 Matlab 中是不同的类型,不能直接进行运算。

2. 符号表达式的运算在 Matlab 中,可以使用符号表达式进行各种运算,包括加减乘除、幂运算、三角函数、指数函数等。

例如,定义符号表达式 f(x) = 2*x^3 + 3*x^2 - 5*x + 1:syms xf(x) = 2*x^3 + 3*x^2 - 5*x + 1;然后可以对 f(x) 进行各种运算,如求导、积分、代数化简等。

例如,求 f(x) 的一阶导数:diff(f(x), x)这里使用 diff 函数求 f(x) 的一阶导数,结果为 6*x^2 + 6*x - 5。

3. 方程求解在 Matlab 中,可以使用 solve 函数求解方程。

例如,求解方程 x^2 + 3*x + 2 = 0:syms xsolve(x^2 + 3*x + 2 == 0)solve 函数返回的是符号变量的解,需要使用 double 函数将其转换为数值变量。

4. 代数化简在 Matlab 中,可以使用 simplify 函数对符号表达式进行代数化简。

例如,代数化简表达式 (x^2 + 2*x + 1)/(x + 1):syms xsimplify((x^2 + 2*x + 1)/(x + 1))simplify 函数会自动将表达式化简为最简形式。

matlab-10符号运算解读

matlab-10符号运算解读
功能型工具箱主要用来扩充matlab的符号计算功能图形建模仿真功能文字处理功能以及与硬件实时交互功能能用于多种学科
工具箱 三十多个工具箱大致可分为两类:功能型工具箱 和领域型工具箱。 功能型工具箱主要用来扩充MATLAB的符号计算 功能、图形建模仿真功能、文字处理功能以 及与硬件实时交互功能,能用于多种学科。而 领域型工具箱是专业性很强的。如控制工具 箱(Control Toolbox)、信号处理工具箱 (Signal Processing Toolbox)等。下面,将
线
• for k=-2:0.5:2;ezplot(subs(y(1),'C1',k),[-6,6,4,8],1); • end % 画解 • hold off,title(‘\fontname{隶书}\fontsize{16}通解 和奇解’) 运行结果
注意
• Symbolic(符号运算)中的dsolve只能给出解 析解,而不能给出数值解。
MATLAB工具箱内所包含的主要内容做简要介绍:
Symbolic 符号运算(1)
• Symbolic 是应用Symbolic Math Toolbox,以符号(如a,b,c,x,y,z)为对象 的一种数学运算。适用于数学推理、可 变精度运算等。 • 在Matlab界面下调用‘sym’、‘syms’ 等函数。
• 例:当运行 y=dsolve(‘D6y+a5*D5y+a4*D4y+a3*D3y+a2*D2y+ a1*Dy+a0*y=b4*D4u+b3*D3u+b2*D2u+b1*Du+b0 *u’,‘t’) 时, 由于没有 解析解,运行结果会出现: • Warning: Explicit solution could not be found. • > In D:\MATLAB6p5\toolbox\symbolic\dsolve.m at line 326 • In d:\MATLAB6p5\work\example2.m at line 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


符号对象及其运算


建立符号对象 符号表达式运算 符号表达式中变量的确定 符号矩阵
6
一、建立符号对象
1.建立符号对象 (1)sym函数 sym函数用来建立单个符号量,一般调用格式为 符号量名 = sym('符号字符串')
该函数可以建立一个符号量,符号字符串可以是常量、 变量、函数或表达式。例如:
合化简,并显示化简过程。 例如: s= sym('(x^2+5*x+6)/(x+2)'); simplify(s)
ans=
x + 3
20
函数simple试用几种不同的化简工具,然后选择在结 果表达式中含有最少字符的那种形式。例如 >> syms x >> s=cos(x)^2+sin(x)^2; simple(s) %自动调用多种函数对s进行化简,并显
例如: h=sym('[3/2,(2*x+1)/3;a/x+a/y,3*x+4]') ; [n,d]=numden(h) n = [ 3, 2*x + 1] [a*x + a*y, 3*x + 4] d = [ 2, 3] [ x*y, 1]
15
3.符号表达式的因式分解与展开

factor(s):对符号表达式s分解因式。 expand(s):对符号表达式s进行展开。
>> y2=sin(p2/3)
>> y3=cos((a1+10)^2)
>> y4=cos((a2+10)^2)
(2)syms函数 函数sym一次只能定义一个符号变量,使用不方便。 MATLAB提供了另一个函数syms,一次可以定义多个符号变量。 syms函数的一般调用格式为 syms符号变量名1符号变量名2…符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串分 界符('),变量间用空格而不要用逗号分隔。例如,用syms 函数定义4个符号变量a、b、c、d,命令如下: syms a b c d
2.建立符号表达式
含有符号对象的表达式称为符号表达式。建立符号 表达式有以下2种方法。 (1)用sym函数建立符号表达式。例如:
U=sym('3*x^2-5*y+2*x*y+6') U = 3*x^2-5*y+2*x*y+6 F=sym('cos(x^2)-sin(2*x)=0') F = cos(x^2)-sin(2*x)=0 M=sym('[a,b;c,d]') M = [ a, b] [ c, d]
2*3^2*5*7
18
4.符号表达式系数的提取
c = coeffs(s [, x])
该函数返回多项式中按指定变量升幂顺序排列的系 数,若没有指定变量,则返回所有项的常系数,且按离 字符“x”近原则确定主变量。例如: syms x y s = 5*x*y^3 + 3*x^2*y^2 + 2*y + 1;


collect(s):对符号表达式s合并同类项。
collect(s,v):对符号表达式s按变量v合并同类项。
16
例如:
syms x y; s1=x^3-y^3; factor(s1) ans = (x - y)*(x^2 + x*y + y^2) s2=(-7*x^2-8*y^2)*(-x^2+3*y^2); expand(s2) %对s展开
a=sym('a') %建立符号变量a 符号变量参与运算前无须赋值,其结果是一个由参与 运算的变量名组成的表达式。
a=sym('a'); w=a^3+3*a+10 w= a^3 + 3*a + 10 x=5; w=x^3+3*x+10 w= 150 whos Name Size a 1x1 w 1x1 x 1x1
>> u=sym2poly(sym('x^3-2*x-5')) u = 1 0 -2 -5 >> v=poly2sym(u,'Y') v = Y^3-2*Y-5
23
三、符号表达式中变量的确定
findsym、symvar函数可以帮助用户查找一个符号表达式 中的符号变量。该函数的调用格式为 findsym(s[,n]) symvar(s[,n])
掌握符号对象的定义方法以及符号表达式的运
算法则。
掌握微积分的符号计算方法。 掌握级数求和的方法以及将函数展开为泰勒级
数的方法。
掌握代数方程和微分方程符号求解的方法。
5
第一节 符号对象及其运算

MATLAB数值运算的对象是数值,而符号运算的对象是非数
值的符号对象。

符号对象就是指代表非数值的符号字符串。例如,符号常 量、符号变量以及有它们参与的数学表达式等。 在进行符号运算前首先要建立符号对象。
coeffs(s)
coeffs(s,y)
%求所有项的常系数,按x的升幂排列
%求变量y的系数
[ 1, 2, 5, 3]
[ 1, 2, 3*x^2, 5*x]
5.符号表达式的化简 MATLAB提供的对符号表达式化简的函数如下。 ● simplify(s):应用MuPAD简化规则对s进行化简。
● simple(s):调用MATLAB的其他函数对表达式进了i 和j之外,字母位置最接近x的字母;若距离相等, 则取ASCII码大的; (2)若没有除了i 与j以外的字母,则视x为默认的符号变量; (3)可利用函数findsym(string,N)来询问在众多符号中, 哪N个为符号变量.例如:键入findsym(3*a*b+y^2,1), 即可得到答案y.更多的例子见下表:
11
(2)使用已经定义的符号变量组成符号表达式。例如: syms x y; V=3*x^2-5*y+2*x*y+6 ans = 3*x^2 + 2*y*x - 5*y + 6
二、符号表达式运算
1.符号表达式的四则运算
符号表达式的四则运算与数值运算一样,用+、−、 *、/、^ 运算符实现,其运算结果依然是一个符号表达 式。例如: f= sym('2*x^2+3*x-5') %定义符号表达式 g= sym('x^2-x+7') f+g ans= 3*x^2 + 2*x + 2 f^g ans= (2*x^2 + 3*x - 5)^ (x^2 - x + 7)
17
%对s分解因式
ans =
7*x^4 - 13*x^2*y^2 - 24*y^4
s3=(x+y)*(x^2+y^2+1) collect(s3,y) ans = y^3 + x*y^2 + (x^2 + 1)*y + x*(x^2 + 1) factor(sym(630)) ans = %对符号整数分解因式 %对s按变量y合并同类项

3
【例】求导数 >> x=sym('x'); >> diff(cos(x)^2) ans = (-2)*cos(x)*sin(x) MATLAB符号运算的对象全是文字符号,算的结果 也是文字符号。


符号运算基本覆盖了初等数学和高等数学中绝大多数 内容,都可用MATLAB命令行实现。
4
本章学习目标
函数返回符号表达式s中的n个符号变量,若没有指
定n,则返回s中的全部符号变量。findsym以字符串形 式返回结果,symvar以向量形式返回结果。例如:
syms x a y z b; %定义5个符号变量 s1=3*x+y; s2=a*y+b; %定义2个符号表达式 findsym(s1) findsym(s2,2) ans = ans= x, y y,b symvar(s1+s2) ans = [ a, b, x, y] 在求函数的极限、导数和积分时,如果用户没有明确 指定自变量,MATLAB将按以下原则确定主变量并对其进行 相应微积分运算。
27
四、符号矩阵
函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
2 2 a x 【例】化简矩阵 ax 式分解。 1
sin y 15
2
,并对其因 x y ab x 2 y 2 2 xy
syms a b x y m= [(a^2-x^2)/(a+x), sin(y)^2,(x-y)/(a+b);1,15,x^2+y^2-2*x*y]; simplify(m) %对符号矩阵化简处理 ans = [ a-x, 1-cos(y)^2, (x-y)/(a+b)] [ 1, 15, x^2+y^2-2*x*y] factor(m) %对符号矩阵因式分解 [ a-x, sin(y)^2, (x-y)/(a+b)] [ 1, 15, (x-y)^2]
MATLAB与科学计算
南京师范大学地理科学学院
第四章 MATLAB符号运算
在科学研究和工程应用中,除了存在大量的数值计算 外,还有对符号对象进行的运算,即在运算时无须事先 对变量赋值,而将所得到结果以标准的符号形式来表示。 MATLAB符号计算是通过集成在MATLAB中的符号运算 工具箱(Symbolic Math Toolbox)来实现的。应用符号计 算功能,可以直接对抽象的符号对象进行各种计算,并 获得问题的解析结果。
phi=sym('(1+sqrt(5))/2') phi = (1+sqrt(5))/2
相关文档
最新文档