第三讲-2 matlab的符号运算

合集下载

第三讲 MATLAB的符号运算

第三讲 MATLAB的符号运算

例2. factor指令的使用
(1)除x外不含其他自由变量的情况 (2) 含其他自由变量的情况之一
syms a x;
f2=x^2-a^2;
f1=x^4-5*x^3+5*x^2+5*x-6;
factor(f2)
factor(f1)
(3)对正整数的质数分解,若正整数数大于252,则用 factor(sym (‘N’))
用matlab函数sym创建矩阵(symbolic 的缩写)
命令格式:A=sym('[
]')
※ 符号矩阵内容同数值矩阵
※ 需用sym指令定义
※ 需用'
'标识
2019/7/19
13
例如:A = sym('[a , 2*b ; 3*a , 0]') A= [ a, 2*b] [3*a, 0]
2019/7/19
10
numeric(s): 将不含自由变量的符号表达式转换 为数值形式,其效果double(sym(s))相同.(旧版 中的数值转化函数).
2019/7/19
11
vpa(5/6,40)
ans =
.8333333333333333333333333333333333333333
a=sym('[1/4,exp(1);log(3),3/7]')
有时符号运算的目的是为了得到精确的数值 解,这样就需要对得到的解析解进行数值转 换。在symbolic中有三种不同的算术运算:
数值类型 matlab的浮点算术运算 有理数类型 maple的精确符号运算 vpa类型 maple的任意精度算术运算
2019/7/19

MATLAB中的符号运算精品PPT课件

MATLAB中的符号运算精品PPT课件

符号变量 当字符表达式中含有多于一个的变量时,只有一个变 量是独立变量。如果不告诉MATLAB哪一个变量是独 立变量,MATLAB将基于以下规则选择一个:
在符号表达式中缺省的独立变量是唯一的,除去i和j 的小写字母,不是单词的一部分。如果没有这种字 母,就选择x作为独立变量。如字符不是唯一的,就 选择在字母顺序中最接近x的字母。如果有相连的字 母,就选择在字母表中较后的那一个。
symvar( ' 3*i+4*j ' ) % i and j are equel to sqrt(-1) ans= x
symvar( ' y+3*s ' , ' t ' ) ans= s % find the variable closest to t rather than x
如果利用规则symvar不能找到一个缺省独立变量, 它便假定无独立变量并返回x。这一结论对含有由 多个字母组成的变量,如:alpha或s2的表达式, 或不含变量的符号常数均成立。如果需要,绝大多 数命令都使用用户选项以指定独立变量。
symvar( ' a*x+y*) % find the default symbolic variable ans= x
symvar( ' a*t+s/(u+3) ' ) % u is the closest to ' x ' ans= u
symvar( ' sin(omega) ' ) % ' omega ' is not a singlee character。 ans= x
MATLAB中的符号运算
2004.8.4
MATLAB所具有的符号数学工具箱与其 它所有工具不同,它适用于广泛的用 途,而不是针对一些特殊专业或专业 分支。另外,MATLAB符号数学工具 箱与其它的工具箱区别还因为它使用 字符串来进行符号分析,而不是基于 数组的数值分析。

_MATLAB的符号运算

_MATLAB的符号运算

例3、解方程组
x+y+z=1 x-y+z=2 2x-y-z=1


>> [x,y,z]=solve('x+y+z=1','xy+z=2','2*x-y-z=1') x= 2/3 y= -1/2 z= 5/6
MATLAB的 符号运算
一、符号运算的基本操作
1. 什么是符号运算
与数值运算的区别 ※ 数值运算中必须先对变量赋值, 然后才能 参与运算。
※ 符号运算无须事先对独立变量赋值,运算
结果以标准的符号形式表达。
2. 符号变量与符号表达式
建立符号变量
MATLAB提供了两个建立符号对象的函数:sym和 syms,两个函数的用法不同。 sym函数 sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym('符号字符串') 该函数可以建立一个符号量,符号字符串可以是常 量、变量、函数或表达式。
[ atan(1/2*(-2*3^(1/2))^(1/2),1/2+1/2*3^(1/2))] [ atan(-1/2*(-2*3^(1/2))^(1/2),1/2+1/2*3^(1/2))] [ atan(1/2*2^(1/2)*3^(1/4)/(1/2-1/2*3^(1/2)))+pi] [ -atan(1/2*2^(1/2)*3^(1/4)/(1/2-1/2*3^(1/2)))-pi]
b
b 4ac
2
一般格式
2a
例2、符号方程cos(x)=sin(x) , tan(2*x)=sin(x)求解
>> syms x >>f1=solve(‘cos(x)=sin(x)’);

MATLAB应用第三章-符号计算

MATLAB应用第三章-符号计算
第三章 MATLAB符号计算
3. 1 数据类型 3.2 符号运算
数学运算中除了数值运算外,还有大量抽象运算(计算式中带有符号变 量、表达式的运算)。Matlab就是利用maple软件的符号运算功能来实 现这些符号运算的。 Maple : 通用的数学和工程软件,是世界上最值得信赖、最完整的数学 软件之一,被高等院校、研究机构和公司广泛应用,用户渗透超过97% 的世界主要高校和研究所,超过81%的世界财富五百强企业。 Maple提供世界上最强大的符号计算,无与伦比的数值计算,支持 用户界面开发和网络发布,内置丰富的数学求解库,覆盖几乎所有的数 学分支,所有的操作都是在一个所见即所得的交互式技术文档环境中完 成,完成计算的同时也生成了专业技术文件和演示报告。 Maple不仅仅提供编程工具,更重要的是提供数学知识。Maple是 教授、研究员、科学家、工程师、学生们必备的科学计算工具,从简单 的数字计算到高度复杂的非线性问题,Maple都可以帮助您快速、高效 地解决问题。用户通过Maple产品可以在单一的环境中完成多领域物理 系统建模和仿真、符号计算、数值计算、程序设计、技术文件、报告演 示、算法开发、外部程序连接等功能,满足各个层次用户的需要,从高 中学生到高级研究人员。
格 Eg 3-2 补充。 补充。 2)char函数创建:char(‘string1’,’string2’, …); Eg 3-3 各个字符串不须同大小, 各个字符串不须同大小,该函数自动补充空白 字符。 字符。 Eg 3-4
字符串与单元 1)cellstr将字符数组转换成单元数组。 2)char函数将单元数组转换成字符数组。 数组的转换 字符串的比较 1)strcmp(a,b):比较两个字符串所有字符是
Grand total is 33 elements using 462 bytes

第3讲matlab的符号运算

第3讲matlab的符号运算

第三讲 MATLAB 的符号运算(注:文中红色字体为命令执行的结果,在Command 窗口中显示)3-1 符号对象的创建和使用1.符号运算入门符号运算的特点是,运算过程中允许存在非数值的符号变量。

先看如下示例: 函数2)(sin )(x x f =,用MATLAB 求它的微积分,命令如下:f=’sin(x)^2’; %定义符号函数f(x)dfdx=diff(f) %求dxx df )(的指令 intf=int(f) %求⎰dx x f )(的指令显示的计算结果为:dfdx=2*sin(x)*cos(x)intf=-1/2sin(x)*cos(x)+1/2*x 所以,x x dx x df cos sin )(2=,x x x dx x f cos sin )(2121-=⎰。

此例中,首先定义符号函数f=’sin(x)^2’,然后由符号运算获得2)(sin )(x x f =的微分和积分。

2.定义符号变量在使用符号变量之前,应先声明某些要用到的变量是“符号”变量。

声明符号变量的语句:syms 变量名列表或: sym(‘变量名’)其中各个变量名应该用空格分隔,而不能用逗号分隔。

如创建符号变量x 和a :x=sym(‘x ’)a=sym(‘alpha ’)或用: syms x a %定义符号变量x 和a这里,变量x 和a 的类型是符号对象,它们被定义后,即可参与符号运算。

3.定义符号表达式和符号方程符号表达式和符号方程是两种不同的操作对象。

区别在于:符号表达式不包含等号(=),而符号方程须带等号。

它们的创建方式相同。

如:要考虑二次函数f=ax^2+bx+c ,可以创建符号表达式,赋值给符号变量f 。

f=sym(‘a*x^2+b*x+c ’)或:f=‘a*x^2+b*x+c’此例中,将符号表达式赋给符号变量f,但这不是必需的,引入符号变量是为了以后调用方便。

在这种情况下,没有创建对应于表达式中a、b、c、x项的变量,为了执行符号数学运算(如微分、积分等),必须显式地创建这些变量,可用下列命令创建:syms a b c x如下例中创建了符号表达式和符号方程,分别赋给相应的符号对象。

三讲MATLAB的符号运算

三讲MATLAB的符号运算

a=sym('a')
注意两个 a旳区别
b=sym('c')
classa=class(a)
classb=class(b) 可看出两个变量均为符号对象
syms a b c d e f g h
whos
也能够查看全部变量类型
从上述比较来看:当需要同步定义多种符号 变量时,使用syms( )更简洁某些。
符号常量
vpa(x,n) —— 求符号解旳近似解,该近似解旳有 效位数由n来决定。
digits(25) vpa(1/2+1/3) ans = .8333333333333333333333333
vpa(5/6,40) ans = .8333333333333333333333333333333333333333
由符号变量构成旳符号函数和 符号方程
• 符号体现式是由符号常量、符号变量、符号函
数运算符以及专用函数连接起来旳符号对象。
• 涉及:符号函数和符号方程。判断看带不带等
号。 例:syms x y z; f1=x*y/z;
f2=x^2+y^2+z^2; f3=f1/f2;
e1=sym('a*x^2+b*x+c')
f —— 字符串名
sin(x)+5x—— 函数体现式
'
'—— 字符串标识
字符串体现式一定要用' '单引
号括起来Matlab才干辨认。
用class( )来返回对象旳数据类型。
‘ ’ 里旳内容能够是函数体现式, 也能够是方程。
例:
f1='a*x^2+b*x+c' —— 二次三项式 f2= 'a*x^2+b*x+c=0' —— 方程 f3='Dy+y^2=1' ——微分方程 ※函数体现式或方程能够赋给字符串 或符号变量,后来以便调用。

符号运算 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语言符号运算PPT课件

第三章MATLAB语言符号运算PPT课件

3.1.1 符号对象的创建
例:
>> x=sym('x') >> y=sym('y')
>> syms x y
>> z=x*x+y*y z= x^2+y^2 >> a=5;b=3;c=a*a+b*b c=
34
3.1.1 符号对象的创建
2. 符号常量的创建 不含变量的符号叫符号常量。符号常量的定义 也使用函数sym()。
3.1.1 符号对象的创建
➢syms函数调用格式:
函数sym一次只能定义一个符号变量,使用不 方便。MATLAB提供了另一个函数syms,一 次可以定义多个符号变量。syms函数的一般 调用格式为: syms 符号变量名1 符号变量名2 … 符号变量 名n 用这种格式定义符号变量时不要在变量名上加 字符串分界符(‘),变量间用空格而不要用逗号 分隔。
例:
>> a=sym(1/5) a= 1/5
3.1.1 符号对象的创建
3. 符号表达式的创建
符号表达式为含有符号对象(符号常量、符号变量)的 表达式,其创建方法如下: 1.利用函数sym()直接创建 sym(A):其中A为字符串的表达式,必须被单引号引用。 2.利用符号对象创建 符号表达式也可以通过创建的符号对象来实现,当把已 定义的符号变量或者符号常量连接为表达式,即可完成 符号表达式的创建。
※ 数值运算中必须先对变量赋值,然后才能参 与运算。
※ 符号运算无须事先对独立变量赋值,运算结 果以标准的符号形式表达。
3.1.1 符号对象的创建
在MATLAB中的符号计算主要是对符号对象进 行操作的,在使用符号计算功能前,首先需要创 建符号对象。本节主要介绍符号对象的创建,其 中常用的符号对象主要包括符号常量和变量、符 号表达式、符号矩阵。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
t =0
t −1
>>syms k t; f=[t, k^3], s=simple(symsum(f)) >>syms a t x; f=[a, t^3; t*cos(x), log(x)]; >>dfdt2=diff(f,t,2)
Matlab程序设计 程序设计
d a 例2 : 求 2 dt t cos x
(3) syms a b c x;
f3= a∗x^2+b∗x+c ∗ ∗
%二次三项式 二次三项式
Matlab程序设计 程序设计
2. 符号变量与符号表达式 符号参数: 符号参数 定义具有Flag属性的符号参数 定义具有 属性的符号参数
syms Para1 Para2 ParaN Flag s=sym(‘Para’,’Flag’)
Flag可以是 可以是
positive real unreal 参数为正实数 参数为实数 参数为不限定的复数
Matlab程序设计 程序设计
2. 符号变量与符号表达式 符号变量
确定自由符号变量的规则: 确定自由符号变量的规则: 在指定变量名的情况下, 在指定变量名的情况下,解题围绕指定变量名进行 未指定变量名的情况下,按与小写x的 未指定变量名的情况下,按与小写 的ASCII码的距离自 码的距离自 动识别自由符号变量 认定表达式中的自由符号变量-findsym 认定表达式中的自由符号变量 findsym(EXPR) 确认表达式中所有的自由符号变量 findsym(EXPR,N) 找出距离x最近的 最近的N个自由符号变量 找出距离 最近的 个自由符号变量
Matlab程序设计 程序设计
2. 符号变量与符号表达式 建立符号对象的方法: 建立符号对象的方法: (1)sym函数 ) 函数 (2)syms函数 ) 函数 例:
(1) f1=sym([1/3,pi/7;sqrt(5),pi+sqrt(5)]) (2) f2=sym('Dy+y^2=1') %微分方程 微分方程
Matlab程序设计 程序设计
§2 符号运算 1. 符号矩阵运算 数值运算中, 数值运算中,所有矩阵运算操作指 令都比较直观、简单。例如:a=b+c; 令都比较直观、简单。例如: a=a*b ;A=2*a^2+3*a-5等。 等 涉及符号运算的操作增加了一些专 用函数
Matlab程序设计 程序设计
F115 = -0.3787 -0.5469 -0.7809 -1.1340 -1.7758 >>mhelp Ei
Matlab程序设计 程序设计
4. 符号积分变换 mtaylor(f,n) —— 泰勒级数展开 ztrans(fn,n,z) —— 求时域序列 的Z变换 求时域序列fn的 变换 iztrans(Fz,z,n) ——求频域序列 的Z反变换 求频域序列Fz的 反变换 laplace(ft,t,s) ——求时域函数 的拉氏变换 求时域函数ft的拉氏变换 ilaplace(Fs,s,n) ——求频域函数 的拉氏反变换 求频域函数Fs的拉氏反变换 fourier(ft,t,w) —— 求时域函数ft的付氏变换 求时域函数 的付氏变换 ifourier(Fw,w,t) —— 求频域函数 的付氏反变换 求频域函数Fw的付氏反变换
例:A =sym('[ a, 2*b; 3*a, 0] ')
Matlab程序设计 程序设计
A1=subs(A, 'b', 'c')
例: subs置换规则 置换规则 >>syms a x; >>f=a*sin(x)+5; >>f1=subs(f,‘sin(x)’,sym(‘y’)) %符号变量置换 符号变量置换 f 1= a*y+5 >>f2=subs(f,{a,x},{2,sym(pi/3)}) %常量置换 常量置换 f2 = 3^(1/2)+5 >>f3=subs(f,{a,x},{2,pi/3}) %双精度数值置换 双精度数值置换 f3 = 6.7321
Matlab程序设计 程序设计
2. 符号数值精度控制
*符号运算的结果是绝对准确的,用有理数表示。 符号运算的结果是绝对准确的,用有理数表示。 符号运算的结果是绝对准确的 例: >>sym(1/2)+(1/3) ans = 5/6 --精确解 --精确解 *转换为数值型符号结果时 数值精度计算有关的指令: 转换为数值型符号结果时,数值精度计算有关的指令 转换为数值型符号结果时 数值精度计算有关的指令: double(x) —— 将符号常量转为 位精度数值量 将符号常量转为16位精度数值量 digits(n) —— 设置今后数值计算精度,缺省 位 设置今后数值计算精度,缺省32位 vpa(x,n) —— n位相对精度的数值型符号结果 位相对精度的数值型符号结果 例: >>digits(25); vpa(1/2+1/3) ; ans = .8333333333333333333333333 >>class(ans) ans = sym
Matlab程序设计 程序设计
ቤተ መጻሕፍቲ ባይዱ
3. 符号微积分
• symsum(f,v,a,b) — 对v取[a,b]中所有整数时的和 取 中所有整数时的和 • diff(f,v,n) —对指定变量 求n阶微分(数值计算 中 对指定变量v求 阶微分 数值计算 数值计算diff中 对指定变量
为差分) 为差分
例1 : 求 ∑ [t , k 3 ] %自变量取值区间为 自变量取值区间为[0,v-1]时,可缺省 可缺省a,b 自变量取值区间为 时 可缺省
Matlab程序设计 程序设计
5. 符号矩阵与数值矩阵的转换
将数值矩阵转化为符号矩阵 函数调用格式: 函数调用格式:sym(A) >>sym(A) >>A=[1/3,2.5;1/0.7,2/5] ans =[ 1/3, 5/2] A = 0.3333 2.5000 [10/7, 2/5] 1.4286 0.4000 将符号矩阵转化为数值矩阵 函数调用格式: 函数调用格式: double >>double(ans) ans = 0.3333 2.5000 1.4286 0.4000
Matlab程序设计 程序设计
例1:计算:S=(-7x2-8y2)*(-x2+3y2) :计算: 解:>>syms x y; >>s= (-7*x.^2-8*y.^2)*(-x.*x+3*y.*y) >>expand(s) %对x展开 对 展开 ans = 7*x^4-13*x^2*y^2-24*y^4 >>collect(s,x) %对S按x合并同类项 对 按 合并同类项 ans = 7*x^4-13*x^2*y^2-24*y^4
Matlab程序设计 程序设计
§1 符号运算的基本操作
1. 什么是符号运算 • 与数值运算的区别 ※ 数值运算中必须先对变量赋值, 数值运算中必须先对变量赋值, 然后才能参与运算。 然后才能参与运算。 ※ 符号运算无须事先对独立变量 赋值, 赋值,运算结果以标准的符号形式 表达。 表达。
Matlab程序设计 程序设计
>>factor(ans) %分解因式 分解因式
ans = (8*y^2+7*x^2)*(x^2-3*y^2)
>>findsym(ans) %找自由符号变量 找自由符号变量
ans = x, y
Matlab程序设计 程序设计
例2:化简 S=(x2+y2)2+(x2-y2)2 : syms x y; S=(x^2+y^2)^2+(x^2-y^2)^2 simple(S) %系统自动试探各种函数化简 系统自动试探各种函数化简 simple(ans) %使用多次找到最少字母的简化式 使用多次找到最少字母的简化式
Matlab程序设计 程序设计
3.符号矩阵的创建 符号矩阵的创建 数值矩阵A=[1,2;3,4] 数值矩阵 A=[a,b;c,d] %a,b,c,d未定义 则不识别 未定义,则不识别 未定义 的缩写) (1)用函数 )用函数sym创建 (symbolic的缩写 创建 的缩写 命令格式: 命令格式:A=sym('[ A= [ a, 2*b] 0] ]') >>A = sym('[a , 2*b ; 3*a , 0]') [3*a,
Matlab程序设计 程序设计
2. 符号变量与符号表达式
>> z=sym('a*x^2+b*y^3+cos(theta)'); >> findsym(z) ans = a, b, theta, x, y >> findsym(z,1) ans = x >> findsym(z,2) ans = x,y
第四章 MATLAB的符号运算 的符号运算
—— matlab 不仅具有数值运算功 能,还开发了在matlab环境下实现 还开发了在 环境下实现 符号计算的工具包Symbolic 符号计算的工具包 Math Toolbox
Matlab程序设计 程序设计
符号运算的功能 • • • • • • 符号表达式、 符号表达式、符号矩阵的创建 符号线性代数 因式分解、 因式分解、展开和简化 符号代数方程求解 符号微积分 符号微分方程
F1 = -Ei(1,-log(x))
%求x=0.5,0.6,0.7,0.8,0.9时的定积分 求 时的定积分
函数,对经典特殊函数求值 是 函数 >>x=0.5:0.1:0.9; mfun是maple函数 对经典特殊函数求值 >>F115=-mfun('Ei',1,-log(x)) 指数积分Ei是 指数积分 是maple经典特殊函数 经典特殊函数
相关文档
最新文档