第三章MATLAB的符号运算
Mlab第3章总结

第三章MATLAB符号计算1. sym(‘变量’,参数(positive/real/unreal)) 使用syms命令创建符号变量和符号表达式syms(‘arg1’, ‘arg2’, …,参数(positive/real/unreal)) syms arg1 arg2 …,参数符号表达式()中的参数一定要用' ' 单引号括起来。
2. 符号运算中的运算符(1)基本运算符:运算符“+”,“-”,“*”,“\”,“/”,“^”分别实现符号矩阵的加、减、乘、左除、右除、求幂运算。
运算符“.*”,“./”,“.\”,“.^”分别实现符号数组的乘、除、求幂,即数组间元素与元素的运算运算符“′”,“.′”分别实现符号矩阵的共轭转置、非共轭转置。
(2)关系运算符运算符“= =”、“~=”分别对运算符两边的符号对象进行“相等”、“不等”的比较。
真为1,假为0。
3在Symbolic Math Toolbox中有三种不同的算术运算:数值型:MATLAB的浮点运算。
有理数型:Maple的精确符号运算。
VPA型:Maple 的任意精度运算。
任意精度的VPA型运算可以使用digits和vpa命令来实现。
digits(n) %设定默认的精度(全局matlab应用)S=vpa(s,n) %将s表示为n位有效位数的符号对象,n省略后依据digits(n)设定。
只针对一次,不改变matlab设定的digits(n)精度。
4. 1.将数值矩阵转化为符号矩阵函数调用格式:sym(A) 2.将符号矩阵转化为数值矩阵函数调用格式: numeric(A)、double(A)5. 符号表达式“f=ax2+bx+c”中只有一个变量是独立变量:1. 小写字母i和j不能作为自由变量。
2.符号表达式中如果有多个符号变量,则按照以下顺序选择自由变量:首先选择x作为自由变量;如果没有x,则选择在字母顺序中最接近x的字符变量;如果与x相同距离,则在x后面的优先。
MATLAB符号运算运用

MATLAB符号运算运用1. 求解方程:MATLAB可以通过符号运算求解各种复杂方程。
例如,我们可以使用solve函数来求解一元一次方程,或者使用dsolve函数来求解微分方程。
例如,对于一个一元一次方程3*x - 2 = 0,可以使用下面的代码来求解:syms xeqn = 3*x - 2 == 0;sol = solve(eqn, x);在解得的结果sol中,将会包含方程的解。
2. 求导与积分:MATLAB使用diff函数进行符号求导,使用int函数进行符号积分。
符号求导与积分可以帮助我们对复杂函数进行分析和计算。
例如,对于一个函数y = x^2,我们可以使用下面的代码求解其导数和积分:syms xy=x^2;dy = diff(y, x);inty = int(y, x);在求导和积分的结果dy和inty中,将会包含函数的导数和积分结果。
3. 矩阵运算:MATLAB符号运算也可以应用于矩阵运算。
符号矩阵可以帮助我们进行矩阵的运算和分析。
例如,我们可以使用syms函数定义一个符号矩阵A,然后进行矩阵的加法、乘法等运算。
代码示例如下:syms a b c dA=[ab;cd];B=A^2;矩阵B将会是矩阵A的平方。
4. 求极限:MATLAB符号运算还可以用于求解各种数学函数的极限。
通过使用limit函数,我们可以计算函数在其中一点或者趋于其中一点时的极限值。
例如,对于一个函数f(x) = (x^2 - 1)/(x - 1),我们可以使用下面的代码计算其在x趋于1时的极限值:syms xf=(x^2-1)/(x-1);limit(f, x, 1);此时,将会输出函数在x趋于1时的极限值。
5. 求和与积:MATLAB符号运算还可以用于计算各种数学函数的求和与积运算。
通过使用symsum和symsum函数,我们可以计算符号函数的求和与积。
例如,对于一个求和函数sum(x, n, 1, inf),我们可以使用下面的代码计算其无穷级数求和结果:syms n xf = sum(x, n, 1, Inf);symsum(f, n, 1, Inf);其中,将会输出求和结果。
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
MATLAB实验三参考答案

how =collect(x)
4、求下列函数的极限(写出命令) (1) lim
cos x e x 0 x4
x2 2
syms x; limit('(cos(x)-exp(-1/2*x^2))/(x^4)',x,0) -1/12 (2) lim
2 x ln 2 x 1 x 0 1 cos x
syms n; S=symsum(1/((3*n-2)*(3*n+1)),n,1,inf) 8、试求出函数 f ( x )
sin x 的麦克劳林幂级数展开式的前 9 项,并求出关于 x=2 x 3x 2
2
的 Taylor 幂级数展开式的前 5 项。(命令 taylor 或者 taylortool)
河南财经政法大学数学与信息科学学院 1
实验报告
结果: EXPR =(x^2+x*exp(-t)+1)*(x+exp(-t)) expr1 =x^3+2*exp(-t)*x^2+(1+exp(-t)^2)*x+exp(-t) expr2 =x*exp(-t)^2+(2*x^2+1)*exp(-t)+(x^2+1)*x 3、factor(因式分解),simple(简化运算,对表达式尝试多种不同的算法进行简化,并以最 简化形式给出,How 中记录的为简化过程中使用的方法, )指令的使用 syms a x; f1=x^4-5*x^3+x^2+5*x-6; factor(f1) x^4-5*x^3+x^2+5*x-6 f2=x^2-a^2; factor(f2) (x-a)*(x+a) f3=2*sin(x)^2-cos(x)^2 [y , how]=simple(f3) y 为 f 的最优化简形式,How 中记录的为简化过程中使用的方法 y =-3*cos(x)^2+2 how =simplify [y , how]=simple(f1) y =x^4-5*x^3+x^2+5*x-6
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的符号运算
其它运算
第3章 MATLAB符号计算

复数函数。在符号计算中,复数的共轭conj、求实部real、求虚部 imag和求模abs函数与数值计算中的使用方法相同。但注意,在符号 计算中,MATLAB没有提供求相角的命令。
2.使用syms命令创建符号变量和符号表达式
语法:
syms('arg1', ' arg2',…,参数) syms arg1 arg2 … 参数
%把字符变量定义为符号变量 %把字符变量定义为符号变量的简洁形式
说明:syms用来创建多个符号变量,以上两种方式创建的符号对象是相同的。参数设置和前面的sym命令 相同,省略时符号表达式直接由各符号变量组成。 【例3.2续】 使用syms命令创建符号变量和符号表达式。
>> syms x y real >> z=x+i*y; >> real(z) ans = x >> sym('x','unreal'); >> real(z) ans = x/2 + conj(x)/2
%创建实数符号变量 %创建z为复数符号变量 %复数z的实部是实数x
%清除符号变量的实数特性 %复数z的实部
符号运算中的运算符有以下2种。 (1)基本运算符。
① 运算符“”、“”、“*”、 “\”、“/”、“^”分别实现符号 矩阵的加、减、乘、左除、 右除、求幂运算。
② 运算符“.*”、“./”、“.\”、 “.^”分别实现符号数组的乘、 左除、右除、求幂,即数 组间元素与元素的运算。
符号运算 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求解微积分

第三章 微积分的数学实验3.1极限与一元微积分3.1.1 初等运算1.定义单个或多个符号变量:syms x y z t ;定义单个符号变量或者符号函数还可以用单引号定义,如x=’x ’,f=’sin(x^2)+2*x-1’。
符号表达式的反函数运算g=finverse(f),g 是返回函数f 的反函数。
例1 求sin(1)y x =-的反函数>>syms x>>y=sin(x-1); g=finverse(y),结果为 g=1+asin(t)2. f actor(f) 因式分解函数f3.Collect(f) 对函数f 合并同类项4. expand(f) 将函数f 表达式展开5. simple(f) 找出表达式的最简短形式(有时需要用2次)6. roots (p )对多项式p 求根函数。
7. solve(F) 一般方程的求根函数例2 解方程2510x x +-=解 >>syms x>>solve(x^2+5*x-1)结果为x =[ -5/2+1/2*29^(1/2) -5/2-1/2*29^(1/2)]8.fzero(f,x0)或fzero(f,[a,b]) 在初始点x0处开始或在区间[a,b]上搜索函数的零点,f(a)与f(b)需要符号相反。
3.1.2 Matlab计算函数的极限函数形式:1)limit(F,x,a),求函数F在 x ->a时的极限。
2)limit(F,a),默认其中的变量为极限变量.3)limit (F),默认其中的变量为极限变量且趋向于0.4)limit(F,x,a,'right')或limit(F,x,a,’left') 求函数F在x->a时的右、左极限.例3 >>syms x a t h; %syms作用是申明x,a,t,h是符号变量,不需先赋值再调用。
>>limit(sin(x)/x) %结果为 1>>limit((x-2)/(x^2-4),2) %结果为 1/4>>limit((1+2*t/x)^(3*x),x,inf) %结果为 exp(6*t)>>limit(1/x,x,0,'right') %结果为 inf>>limit(1/x,x,0,'left') %结果为 -inf>>limit((sin(x+h)-sin(x))/h,h,0) %结果为 cos(x)>>v = [(1 + a/x)^x, exp(-x)];limit(v,x,inf,'left') %结果为[exp(a),0]3.1.3 Matlab计算导数与微分1.一元导数和微分diff函数用以计算函数的微分和导数,相关的函数语法有下列4个:diff(f) 返回f对预设独立变量的一次导数值diff(f,'t')或diff(f,t) 返回f对独立变量t的一次导数(值)diff(f,n) 返回f对预设独立变量的n阶导数(值)diff(f,'t',n) 或diff(f,t,n)返回f对独立变量t的n阶导数(值)这里尽管自变量已经作为符号变量,可以不用syms说明,但是在具体执行diff(f)、diff(f,'t')和diff(f,t)会出现差异,有的能够执行,有的不能够,有的执行符号微分,有的执行数值微分,所以比较麻烦。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进行综合化简。
见example3_9
19
Matlab符号微积分运算(P55)
符号极限运算limit(f,x,a) x->a
符号微分运算diff(f,x,n)
符号积分运算int(f),int(f,a,b)
函数命令findsym(f,n) 在微积分、函数表达式化简、解方程中,确定自变量 是必不可少的。在不指定自变量的情况下,按照数学 常规,自变量通常都是小写英文字母,并且为字母表 末尾的几个如t、w、x、y、z等等。在matlab中,用 此函数确定一个符号表达式中的自变量。
4
例1:求解一元二次方程 x
2
2 x 2 0 的解。
见example3_1
2 2 x y yx x 2x 合并关于 例2:对于数学表达式 x 的同类项。
见example3_2
2 ( x 1)( x 2)( x 3) 即三 例3:对于数学表达式
因式连乘积的展开式。
例1:已知 f x3 x2 x 1 试对其进行因式分解。 例2:已知 c 12345678901234567890 试对其进行质因式分解。 例3:已知 f ( x y)3 试对其进行展开。 例4:已知 f axecx becx 试对其进行同类项合并。 见example3_9
16
符号表达式的化简 1、 factor() 符号表达式因式分解的函数命令 2、expand() 将符号表达式展开 3、collect() 符号表达式的合并 格式1:collect(E,v) 按v变量合并 格式2:collect(E)按默认变量合并
4、simplify() ,simple() 将将符号表达式运用多种恒等式变换进行综合化简 格式1:simplify(E) ,simple(E) 格式2:[R,HOW]=simple(E) 17
0.3333 0.2500 0.2000
10
数值转化为符号
sym(‘数值变量’,’f’)-返回浮点表示形式 sym(‘数值变量’,’r’)-返回有理数表示形式 sym(‘数值变量’,’e’)-返回有理数(带误差)表示形式 sym(‘数值变量’,’d’)-返回十进制小数表示形式
– 例: >>sym(4/3,'f') ans ='1.5555555555555'*2^(0) >> sym(4/3,'r') ans =4/3 >> sym(4/3,'e') ans =4/3-eps/3 >> sym(4/3,'d') ans =1.3333333333333332593184650249896
n
例1:已知 f ax by k 试对其进行符号变量替换: n 5, k a sin(t ), b ln(w).k cedt 符号常量替换:
与数组数值替换:k 1:1: 4
见example3_6
15
例2:已知 f a sin x k 试求当: a 1:1: 2, x 0 : : 时函数f的值。 6 3 见example3_7
见example3_15
26
例4:求欧拉方程的通解
x y x y 4xy 3x
3 2
2
例5:求满足初始条件的二阶常系数非齐次微分方程的特解
y y sin(2x) 0, y x 1, y x 1
见example3_15
27
符号运算实现各种变换
见example3_3
见example3_4
6
Matlab符号运算的几个基本概念
符号对象(P49):
符号对象是symbolic math toolbox定义的一种新的数据 类型(sym类型),用来存储代表非数值的字符符号(通 常是大小写的英文字母及字符串)。符号对象可以是符号 常量(符号形式的数),符号变量,符号函数以及各种符 号表达式(符号数学表达式,符号方程与符号矩阵)
20
1 n ) e 例1:试证明 lim(1 n n
x m a ? 例2:试求 lim x a xa
m
sin x 例3:试求 lim ? x0 x
lim e ?, lim e ? 例4:试求 x 0 x 0
1 x
1 x
见example3_11
21
2 df d f x 例5:已知函数 f a 求 , 2 dx dx
a
f ( x)dx
2 2 I d r 例10:计算重积分 sin dr ? 0 0
a
例11:计算广义积分
4s i n t
2
4 xtdx ?
见example3_13
23
Matlab符号方程求解
Matlab符号代数方程的求解
格式1:solve(‘eqn1’,’eqn2’,…’eqnN’,’v1’,’v2’,…’vN’) 对方程组eqn1,eqn2,…eqnN按照变量v1,v2,…vN联立求解
28
例1:求单位冲激函数 (t ) 与函数 f (t ) 1 的傅立叶变换F(w) 例2:求单位延迟阶跃函数 u(t c) 的傅立叶变换F(w) 例3:求函数 Au(t )e
t
f (t ) cos bt
当cos无法直接FT时, 考虑欧拉公式 1/2(exp(jt)+exp(-jt)
ztrans(f) —— Z变换 例:>>zf=ztrans(2^n) zf=1/2*z/(1/2*z-1) iztrans(f) —— 反Z变换 Laplace(f) —— 拉氏变换 例:>>sf=laplace(t^5) sf=120/s^6 ilaplace(f) —— 反拉氏变换 fourier(f) —— 付氏变换 ifourier(f) —— 反付氏变换 simple(f) ——化简表达式 例:>>f=sym(‘cos(x)^2+sin(x)^2’); >>simple(f) ans=1
2
符号运算与数值运算的区别
数值运算: 1. 其运算的元素是数 值; 2. 在运算过程中必须 先对变量进行赋值, 然后才能参加运算; 3. 其结果以数值形式 出现。
符号运算: 1. 其运算的元素是符 号; 2. 在运算过程中无须 对变量进行赋值就 可参加运算;但是 必须先定义符号变 量; 3. 其结果以符号形式 出现。
11
符号对象转换为数值对象的函数double(), vpa() 1、double() 这种格式的功能是将符号常量转换为双精度数值 2、vpa() 精确计算表达式的值。 格式1:R=vpa(E) 格式2:R=vpa(E,D)
12
例1:计算以下符号常量的值 c e
79
并将结果转换为指定精度8位与18位的精确数值解。 见example3_8
第3章 MATLAB的符号运算
1
MATLAB符号运算入门
科学与工程技术的数值运算固然重要,但自然科学 理论分析各种各样的公式、关系式及其推导就是符 号运算要解决的问题。它与数值运算一样,都是科 学计算研究的重要内容。Matlab数值运算的对象是 数值,而Matlab符号运算的对象则是非数值的符号 对象。符号对象就是代表非数值的符号字符串。
18
例5:试对 e1 sin2 x cos2 x
e2 ecln( )
进行综合化简。 例6:试对 e1 ln x ln y
e2 2cos x sin x
2 2
ቤተ መጻሕፍቲ ባይዱ
e3 cos x j sin x
e4 x3 3x2 3x 1
e5 cos x sin x
Matlab符号微分方程的求解
dsolve(‘eqn1’,’eqn2’,…’初始条件部分’,’指定独立变量部分’)
24
例1:对以下方程联立方程组
y2 z 2 x2 yz a x 2 bx c
求a=1,b=2,c=3时的x,y,z
见example3_14
25
例2:求微分方程组的通解
9
数组、矩阵与符号矩阵(P51)
m1=sym(‘[ab bc cd ; de ef fg ; h l j]’) m2=sym(‘[1 12;23 34]’)
– 例: – >>A=hilb(3); A= 1.0000 0.5000 0.5000 0.3333 0.3333 0.2500 >> A=sym(A) A= [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5]
的傅立叶变换F(w) df (t ) 例4:求函数 dt 的傅立叶变换F(w)
例5:求函数 F (w) 2 (w) 的傅立叶反变换f(t)
见example3_16 29
符号函数的可视化
ezplot(f):绘制f=f(t),t的范围-2*pi<t<2*pi ezplot(f,[a,b]):绘制f=f(t),t的范围a<t<b ezplot(f):对于符号f=f(x,y),ezplot(f)在图形窗口 中绘制符号方程f(x,y)=0的图形, -2*pi<x<2*pi, -2*pi<y<2*pi。 ezplot(f,[xmin,xmax,ymin,ymax]) ezplot(x,y):绘制符号方程x=x(t),y=y(t)的图形, 0<t<2*pi; ezplot(x,y,[tmin,tmax])
见example3_2
5
d d 2 2 例4:导函数 (cos x) 和 (cos x ) dx dx
见example3_3 例5:计算不定积分