第六讲 MATLAB符号运算
matlab符号运算 多项式

matlab符号运算多项式【提纲】1.MATLAB符号运算简介MATLAB是一款功能强大的数学软件,其中符号运算功能允许用户进行高级数学计算、分析和可视化。
符号运算可以帮助工程师、科学家和数学家在各种领域解决问题,如线性代数、微积分、概率论等。
2.多项式基本概念与MATLAB表示多项式是数学中一个重要的概念,它表示为一个无穷级数,其中包含常数、变量及其幂次。
在MATLAB中,多项式可以用符号表达式表示,如:f(x) = 2x^3 + 4x^2 - 3x + 1。
3.多项式运算实例以下是几个MATLAB中进行多项式运算的实例:- 多项式加法:将两个多项式相加,如f(x) + g(x)。
- 多项式减法:将两个多项式相减,如f(x) - g(x)。
- 多项式乘法:将两个多项式相乘,如f(x) * g(x)。
- 多项式除法:将一个多项式除以另一个多项式,如f(x) / g(x)。
- 多项式求导:对一个多项式求导,如diff(f(x))。
- 多项式积分:对一个多项式进行积分,如int(f(x))。
4.多项式函数与应用MATLAB提供了许多与多项式相关的函数,如:- polyfit:根据一组数据拟合多项式。
- polyval:根据多项式系数计算多项式的值。
- roots:求多项式的根。
- legendre:勒让德多项式。
- laguerre:拉格朗日多项式。
这些函数在信号处理、控制系统、优化等领域具有广泛的应用。
5.总结与建议MATLAB的符号运算功能为多项式计算提供了便捷的工具和函数。
掌握这些功能和函数可以帮助用户在各种应用场景中解决问题。
Matlab+符号运算

>> k1=polyder([2,-1,0,3]); >> k2=polyder([2,-1,0,3],[2,1]); >> [k2,d]=polyder([2,-1,0,3],[2,1]);
多项式的值
计算多项式在给定点的值
代数多项式求值
y = polyval(p,x): 计算多项式 p 在 x 点的值
p( x) ( x x1 )(x x2 )( x xn )
多项式运算小结
poly2sym(p,’x’) k = conv(p,q) [k,r] = deconv(p,q) k = polyder(p) [k,d] = polyder(p,q) [k,d] = polyder(p,q) y = polyval(p,x) Y = polyvalm(p,X) x = roots(p)
例如:A = sym('[a , 2*b ; 3*a , 0]') A= [ a, 2*b] [3*a, 0] 这就完成了一个符号矩阵的创建。 注意:符号矩阵的每一行的两端都有方 括号,这是与 matlab数值矩阵的 一个重要区别。
符号对象的建立
符号对象的建立:sym 和 syms
syms 命令用来建立多个符号变量,一般调用格式
f (v)
v a
b
symsum(f,a,b): 关于默认变量求和
1 例:计算级数 S 2 及其前100项的部分和 n 1 n >> syms n; f=1/n^2; >> S=symsum(f,n,1,inf) >> S100=symsum(f,n,1,100) x 例:计算函数级数 S 2 n 1 n
MATLAB的符号计算

符号数学工具箱中的工具是建立在功能强大 符号数学工具箱中的工具是建立在功能强大 的称作Maple软件的基础上。它最初是由加拿 软件的基础上。 大的滑铁卢( 大的滑铁卢 ( Waterloo ) 大学开发的。 当要 大学开发的 。 求MATLAB进行符号运算时,它就请求Maple 进行符号运算时, 去计算并将结果返回到MATLAB命令窗口。 命令窗口。 因此, 因此 , 在 MATLAB 中的符号运算是 MATLAB 处理数字的自然扩展。 处理数字的自然扩展。
积分 运用函数可以求得符号表达式的积分,该函数用 以演算函数的积分项,这个函数要找出一符号表 达式F使得diff(F)=f。相关的用法如下: 达式F使得diff(F)=f。相关的用法如下: ①int(f)返回f对预设独立变量的积分值。 int(f)返回f ② int(f,’t’)返回f对独立变量t的积分值。 int(f,’ 返回f对独立变量t ③ int(f,a,b)返回f对预设独立变量的积分值,积分 int(f,a,b)返回f对预设独立变量的积分值, 区间为[a,b], 区间为[a,b],a和b为数值表达式。 ④ int(f,’t’,a,b)返回f对独立变量t的积分值,积分区 int(f,’ ,a,b)返回f对独立变量t的积分值, 间为[a,b], 间为[a,b],a和b为数值表达式。 ⑤ int(f,’m’,’n’)返回f对预设独立变量的积分值,积 int(f,’ 返回f对预设独立变量的积分值, 分区间为[m,n], 分区间为[m,n],m和n为符号表达式。
左趋近于a
lim f ( x )
x →a −
limit(f,x,a,’left’)
lim f ( x )
x →a +
右趋近于a limit(f,x,a,’right’)
MATLAB程序设计第六讲

MATLAB程序设计杨凯2010 . 11主要内容自学))*MATLAB解方程与函数极值解方程与函数极值((自学(自学)自学)线性方程组求解(一、线性方程组求解二、非线性方程组求解三、函数极值四、常微分方程初值问题的数值解法*MATLAB符号计算一、符号计算基础二、微积分三、简化方程表达式四、解方程一、线性方程组求解(自学)1.1 直接解法1.利用左除运算符的直接解法对于线性方程组Ax=b,可以利用左除运算符“\”求可以利用左除运算符“解:x=A\b例*:用直接解法求解下列线性方程组用直接解法求解下列线性方程组。
命令如下命令如下::A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';x=A\b2.利用矩阵的分解求解线性方程组矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积算法将一个矩阵分解成若干个矩阵的乘积。
常见的矩阵分解有LU 分解分解、、QR 分解分解、、Cholesky 分解分解,,以及Schur 分解分解、、Hessenberg 分解分解、、奇异分解等奇异分解等。
(1) LU 分解矩阵的LU 分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式角矩阵和一个上三角矩阵的乘积形式。
线性代数中已经证明,只要方阵A 是非奇异的是非奇异的,,LU 分解总是可以进行的分解总是可以进行的。
MATLAB 提供的lu 函数用于对矩阵进行LU 分解分解,,其调用格式为式为::[L,U]=lu(X):产生一个上三角阵U 和一个变换形式的下三角阵L(行交换),使之满足X=LU 。
注意注意,,这里的矩阵X 必须是方阵是方阵。
[L,U,P]=lu(X):产生一个上三角阵U 和一个下三角阵L 以及一个置换矩阵P ,使之满足PX=LU 。
当然矩阵X 同样必须是方阵方阵。
实现LU 分解后分解后,,线性方程组Ax=b 的解x=U\(L\b)或x=U\(L\Pb),这样可以大大提高运算速度这样可以大大提高运算速度。
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的符号运算正好可⽤于求解⽅程(组)。
此外,它还有许多其他功能。
例如,展开和简化、因式分解以及微积分运算等。
MATLAB的符号运算虽然是数值运算的补充,但是它仍然是科学计算研究中不可替代的重要内容。
与数值运算相⽐,符号运算不需要预先对变量赋值,其运算结果以标准的符号形式表达。
⽐如说计算sin(π),数值运算的结果是1.2246e-16,符号运算的结果是0。
前者是近似的,后者是精确的。
正⽂MATLAB符号运算功能⾮常强⼤,本⽂只介绍⼤部分常⽤的符号运算功能。
注:本⽂代码的运⾏环境是MATLAB R2016b。
1. 创建符号数、符号变量和符号矩阵这⼀步骤是符号运算的第⼀步,后⾯的步骤都是在此基础上进⾏的。
%创建符号数 (只能⽤sym函数)s0 = 1 / sym(7) %符号数,不适合⼤型符号数s1 = sym('1/7') %符号数s2 = sym('3 + 4i') %符号复数%创建符号变量 (sym函数和syms函数都⾏)%--sym函数s3 = sym('x') %符号变量%--syms函数syms a b c %创建多个符号变量,值为本⾝syms(sym('[d e; e d]')) %⽤已存在的符号变量矩阵创建多个符号变量%创建符号矩阵 (sym函数和syms函数都⾏)s4 = sym('[2 5 6; 9 8 6]') %符号数矩阵s5 = sym('x', [2 3]) %符号变量矩阵,矩阵内的元素不会被创建为符号变量A = [a b c; c b a] %⽤已存在的符号变量创建符号变量矩阵% syms A B [2 3] %仅2017及以上版本⽀持,同时创建多个符号矩阵代码运⾏结果如下。
可以看到s5是⼀个2x3的符号变量矩阵,但矩阵内元素不会被创建成符号变量。
符号运算 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进行符号计算
如何使用MATLAB进行符号计算1. 引言在科学计算和工程应用中,符号计算是一项重要的任务。
符号计算可以帮助我们推导数学公式、解方程、进行代数化简等等。
MATLAB作为一种强大的科学计算工具,也提供了符号计算的功能。
本文将介绍如何使用MATLAB进行符号计算。
2. 符号计算基础在MATLAB中,符号计算通过符号工具箱提供。
首先需要将变量声明为符号变量,使用`syms`关键字来完成。
例如,下面的代码将变量x和y声明为符号变量:```syms x y```其次,我们可以使用`sym`函数将数值转换为符号类型。
例如,下面的代码将整数2转换为符号类型:```a = sym(2)```最后,我们可以使用各种符号运算进行符号计算。
例如,下面的代码演示了符号变量之间的加法运算:```x + y```3. 推导数学公式符号计算的一个常见用途是推导数学公式。
MATLAB提供了一系列函数来进行推导,如`diff`、`int`等。
例如,下面的代码计算了函数sin(x)的导数: ```syms xf = sin(x);df = diff(f, x);```在这个例子中,`diff`函数用于计算导数,第一个参数是要计算导数的函数,第二个参数是相对于哪个变量求导数。
4. 解方程另一个常见的符号计算任务是解方程。
MATLAB提供了`solve`函数来解方程。
例如,下面的代码解了方程x^2 - 2 = 0:```syms xsol = solve(x^2 - 2);```解方程的结果是一个结构体数组,每个元素代表一个解。
5. 代数化简符号计算还可以用于代数化简。
MATLAB提供了`simplify`函数来进行代数化简。
例如,下面的代码对表达式(x+1)^2进行化简:```syms xexpr = (x+1)^2;simplified_expr = simplify(expr);````simplify`函数将表达式化简为最简形式。
matlab符号运算
第2章符号运算- Presentation Transcript1.第二章符号运算o MA TLAB 的数学计算=数值计算+符号计算o其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。
2. 1. 符号变量、符号表达式和符号方程的生成o使用sym 函数定义符号变量和符号表达式o使用syms 函数定义符号变量和符号表达式3. 2 、用syms 创建符号变量o使用syms 命令创建符号变量和符号表达式o语法:o syms(‘arg1’, ‘arg2’, …, 参数) % 把字符变量定义为o% 符号变量o syms arg1 arg2 …, 参数% 把字符变量定义为符号变量的简洁形o% 式o说明:syms 用来创建多个符号变量,这两种方式创建的符号对象是相同的。
参数设置和前面的sym 命令相同,省略时符号表达式直接由各符号变量组成。
4.使用syms 函数定义符号变量和符号表达式▪>> syms a b c x▪>> f = a*x^2 + b*x + c▪ f =▪a*x^2 + b*x + c▪>> g=f^2+4*f-2▪g =▪(a*x^2+b*x+c)^2+4*a*x^2+4*b*x+4*c-2▪>>ex02015.符号方程的生成▪>> % 符号方程的生成▪>> % 使用sym 函数生成符号方程▪>> equation1='sin(x)+cos(x)=1'▪equation1 =▪sin(x)+cos(x)=1▪>>6. 2.2 符号形式与数值形式的转换o 1 、将符号形式转换为数值形式:o eval 与numerico例:a1='2*sqrt(5)+pi'o a1 =o2*sqrt(5)+pio b2=numeric(a2) % 转换为数值变量o b2 =o7.6137o b3=eval(a1)o b3 =o7.61377. 2.2 符号形式与数值形式的转换▪ 2 、数值形式转换为符号形式▪p=3.1416;▪q=sym(p)▪执行后屏幕显示:▪q=3927/1250▪numeric(q)▪屏幕显示:▪ans =▪ 3.14168. 2.2 符号形式与数值形式的转换3 、多项式与系数向量之间的转换3.1 sym2poly: 将多项式转化为对应的系数向量例:syms x p; p=x^3-4*x+5; sym2poly(p) 执行后屏幕显示:ans= 1 0 -4 5 9. 2.2 符号形式与数值形式的转换o 3 、多项式与系数向量之间的转换o 3.2 poly2sym: 将向量转化为对应的多项式o例o a=[1 0 -4 5];o poly2sym(a)o执行后屏幕显示o ans=o x^3-4*x+510. 3. 符号表达式( 符号函数) 的操作o(1) 符号表达式的四则运算o syms xo f=x^3-6*x^2+11*x-6;o g=(x-1)*(x-2)*(x-3);o h=x*(x*(x-6)+11)-6;o f+g-ho执行后输出:o ans =o x^3-6*x^2+11*x+(x-1)*(x-2)*(x-3)-x*(x*(x-6)+11)11.(1) 符号表达式的四则运算▪>> syms x y a b▪>> fun1=sin(x)+cos(y)▪fun1 =▪sin(x)+cos(y)▪>> fun2=a+b▪fun2 =▪a+b▪>> fun1+fun2▪sin(x)+cos(y)+a+b▪>>fun1*fun2▪ans =▪(sin(x)+cos(y))*(a+b)12.o(1) 将表达式中的括号进行展开: expando(2) 将表达式进行因式分解:factoro(3) 将一般的表达式变换为嵌套的形式:hornero(4) 将表达式按某一个变量的幂进行集项:collecto(5) 化简表达式:simplifyo(6) 化简表达式,使之成为书写长度最短的形式:simple13.o同一个数学函数的符号表达式的可以表示成三种形式,例如以下的f(x) 就可以分别表示为:o多项式形式的表达方式:o f(x)=x^3+6x^2+11x-6o因式形式的表达方式(factor) :o f(x)=(x-1)(x-2)(x-3)o嵌套形式的表达方式(horner) :o f(x)=x(x(x-6)+11)-614.集项-合并符号表达式的同类项o>> syms x y▪>> collect(x^2*y + y*x - x^2 - 2*x)▪ans =▪(y-1)*x^2+(y-2)*xo>> syms x y▪>> collect(x^2*y + y*x - x^2 - 2*x,y)▪ans =▪(x^2+x)*y-x^2-2*x15.符号多项式的嵌套(horner )▪>> syms x▪>> fun1=2*x^3+2*x^2-32*x+40▪fun1 =▪2*x^3+2*x^2-32*x+40▪>> horner(fun1)▪ans =▪40+(-32+(2+2*x)*x)*x▪>> fun2=x^3-6*x^2+11*x-6▪fun2 =▪x^3-6*x^2+11*x-6▪>> horner(fun2)▪ans =▪-6+(11+(-6+x)*x)*x16.符号表达式的化简(simplify)▪>> syms x▪>> fun1=(1/x+7/x^2+12/x+8)^(1/3)▪fun1 =▪(13/x+7/x^2+8)^(1/3)▪>> sfy1= simplify (fun1)▪sfy1 =▪((13*x+7+8*x^2)/x^2)^(1/3)▪>> sfy2= simple (sfy1)▪sfy2 =▪(13/x+7/x^2+8)^(1/3)17.subs 函数用于替换求值▪>> syms x y▪ f = x^2*y + 5*x*sqrt(y)▪ f =▪x^2*y+5*x*y^(1/2)▪>> subs(f, x, 3)▪ans =▪9*y+15*y^(1/2)▪>> subs(f, y, 3)▪ans =▪3*x^2+5*x*3^(1/2)▪>>subs(f,{x,y},{1,1})ex0202 ex0203 ex020418. 4 、反函数的运算(finverse )▪>> syms x y▪>> f = x^2+y▪ f =▪x^2+y▪>> finverse(f,y)▪ans =▪-x^2+y使用格式: 1 、g=finverse(f):f,g 均为单变量x 的符号函数; 2 、g=finverse(f,t) 返回值g 的自变量取为t ;19. 5 复合函数的运算(compose)▪>> syms x y z t u▪>> f = 1/(1 + x^2);▪>> g = sin(y);▪>> h = x^t;▪>> p = exp(-y/u) ;▪>> compose(f,g)▪ans =▪1/(1+sin(y)^2)▪>> compose(f,g,t)▪ans =▪1/(1+sin(t)^2)使用格式:Compose(f,g) % 返回当f=f(y) 和g=g(x) 时的复合函数f(g(x)) Compose(f,g,t) % 返回的复合函数以t 为自变量,即有f(g(t))20. 6 函数的极限、导数与积分o(1 )函数极限-limit 函数的使用o(2 )函数求导-diff 函数的使用o(3 )符号积分-int 函数的使用21.o符号极限(limit)假定符号表达式的极限存在,Symbolic Math Toolbox 提供了直接求表达式极限的函数limit ,函数limit 的基本用法如下表所示。
matlab符号运算实验原理
matlab符号运算实验原理
MATLAB中的符号运算是一种使用符号变量和表达式的运算方式,与数值
运算不同。
其原理主要基于以下方面:
1. 符号表达式的创建:MATLAB中的符号运算使用符号常量、符号变量和
符号表达式。
这些都可以通过`sym`函数创建。
例如,`A=sym('1')`会创建
一个符号常量,`B=sym('x')`会创建一个符号变量,而`f=sym('2x^2+3y-
1')`则会创建一个符号表达式。
2. 符号运算的执行:符号运算主要包括基本的四则运算(加、减、乘、除)、复合运算、求导和积分等。
对于初等函数,这些运算可以直接使用基本的数学公式进行。
例如,求导和积分可以使用基本的初等函数导数公式和积分公式,以及四则运算法则和复合函数链式求导法则。
3. 结果的表示:符号运算的结果可以是数值或者符号。
对于数值结果,MATLAB会自动进行数值化表示。
对于符号结果,MATLAB会以符号形式
表示。
4. 特殊情况的处理:对于一些特殊情况,如求高次多项式的零点或者对一些特殊函数进行积分等,可能需要特殊的处理方法或者预存的求根或求积套路。
总的来说,MATLAB的符号运算实验原理主要基于符号表达式的创建、使
用基本的数学公式进行运算以及对特殊情况的处理。
这些原理使得
MATLAB能够方便地进行数学上的符号运算,为数学研究和工程计算提供了强大的工具。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
hjTang@
1
Matlab 符号运算介绍
Matlab 符号运算是通过符号数学工具箱(Symbolic Math Toolbox)来实现的。Matlab 符号数学工具箱是建立在功能 强大的 Maple 软件的基础上的,当 Matlab 进行符号运算时, 它就请求 Maple 软件去计算并将结果返回给 Matlab。 Matlab 的符号数学工具箱可以完成几乎所有得符号运算 功能。主要包括:符号表达式的运算,符号表达式的复合、 化简,符号矩阵的运算,符号微积分、符号作图,符号代 数方程求解,符号微分方程求解等。此外,该工具箱还支 持可变精度运算,即支持以指定的精度返回结果。
25
计算积分 计算积分
int(f,v,a,b): 计算定积分 int(f,v): 计算不定积分
∫
b
a
f ( v )dv
int(f,a,b): 计算关于默认变量的定积分 计算关于默认变量的定积分 默认变量
∫ f ( v )dv
int(f): 计算关于默认变量的不定积分 计算关于默认变量的不定积分 默认变量
>> syms n x; f=x/n^2; >> S=symsum(f,n,1,inf)
27
代数方程和微分方程求解 代数方程和微分方程求解
代数方程求解 solve(f,v):求方程关于指定自变量的解,f 可以是 求方程关于指定自变量的解,
用字符串表示的方程、符号表达式或符号方程; 用字符串表示的方程、符号表达式或符号方程; solve 也可解方程组 包含非线性 ; 也可解方程组(包含非线性 包含非线性); 得不到解析解时,给出数值解。 得不到解析解时,给出数值解。
10
查找符号变量
查找符号表达式中的符号变量 findsym(expr)
按字母顺序列出符号表达式 expr 中的所有符号变量
findsym(expr, N) 列出 expr 中离 x 最近的 N 个符号变量
若表达式中有两个符号变量与 x 的距离相等, 则ASCII 码大者优先。
常量 pi, i, j 不作为符号变量
例:计算
x2 + 1 I=∫ 2 dx 和 K = 2 ( x − 2 x + 2)
∫
+∞
0
e
− x2
dx
>> syms x; f=(x^2+1)/(x^2-2*x+2)^2; >> I=int(f,x) >> K=int(exp(-x^2),x,0,inf)
26
符号求和
symsum(f,v,a,b): 求和
>> a1=1e10; b1=1e-10; >> c1=(a1+b1-a1)/b1; >> a2=sym(a1); b2=sym(b1); >> c2=(a2+b2-a2)/b2;
15
符号矩阵 符号矩阵
使用 sym 函数直接生成 >> A=sym('[1+x, sin(x); 5, exp(x)]') 将数值矩阵转化成符号矩阵 >> B=[2/3, sqrt(2); 5.2, log(3)]; >> C=sym(B) 符号矩阵中元素的引用和修改 >> A=sym('[1+x, sin(x); 5, exp(x)]'); >> A(1,2) % 引用 >> A(2,2)=sym(’cos(x)’) % 重新赋值
11
findsym 举例
例: >> f=sym('2*w-3*y+z^2+5*a')
>> findsym(f) >> f=sym(f,3)
>> f=sym(f,1)
12
符号表达式的替换
用给定的数据替换符号表达式中的指定的符号变量
subs(f,x,a) 用 a 替换字符函数 f 中的字符变量 x a 是可以是 数/数值变量/表达式 或 字符变量/表达式
大整数的分解要转化成符号常量
18
函数展开
函数展开 expand(f)
多项式展开 >> syms x; f=(x+1)^6; >> expand(f) 三角函数展开 >> syms x y; f=sin(x+y); >> expand(f)
19
合并同类项
合并同类项 collect(f,v): 按指定变量 v 进行合并 进行合并 collect(f): 按默认变量进行合并 默认变量进行合并 变量进行
8
符号对象的基本运算 符号对象的基本运算
Matlab 符号运算采用的运算符和基本函数,在形状、名称 和使用上,都与数值计算中的运算符和基本函数完全相同
基本运算符
普通运算:+ 、- 、* 、\ 、/ 、^ 数组运算:.* 、.\ 、./ 、.^ 矩阵转置:' 、.'
例:>> X=sym('[x11,x12;x21,x22;x31,x32]');
计算导数 计算导数
diff g=diff(f,v):求符号表达式 f 关于 v 的导数 : g=diff(f):求符号表达式 f 关于默认变量的导数 关于默认变量 默认变量的导数 : g=diff(f,v,n):求 f 关于 v 的 n 阶导数 :
>> syms x; >> f=sin(x)+3*x^2; >> g=diff(f,x)
∞
∑ f (v)
v =a
b
symsum(f,a,b): 关于默认变量求和 关于默认变量求和 默认变量
1 及其前100项的部分和 例:计算级数 S = ∑ 2 及其前 项的部分和 n =1 n >> syms n; f=1/n^2; >> S=symsum(f,n,1,inf) >> S100=symsum(f,n,1,100) ∞ x S=∑ 2 例:计算函数级数 n =1 n
下面的命令运行结果会是什么? f=2*u ans=4 f2=2*(u+2) ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
>> subs(f3,[x,y],[x+y,x+y])
14
练习1 练习
指出下面的 M1,M2,M3 分别是什么。 >> a=1; b=2; c=3;d=4; >> M1=[a,b;c,d]; >> M2='[a,b;c,d]'; >> M3=symห้องสมุดไป่ตู้'[a,b;c,d]'); 下面语句计算出来的 c1,c2 相等吗,为什么?。
>> solve('a*x^2+b*x+c')
求的根 f (x) = (cos x)2 的一次导数
>> x=sym('x'); >> diff(cos(x)^2)
计算 f (x) = x2 在区间 [a, b] 上的定积分
>> syms a b x; >> int(x^2,a,b)
4
符号对象与符号表达式
7
符号表达式的建立 符号表达式的建立 表达式
符号表达式的建立:
建立符号表达式通常有以下2种方法: (1) 用 sym 函数直接建立符号表达式。 (2) 使用已经定义的符号变量组成符号表达式。
例: >> y=sym('sin(x)+cos(x)')
>> x=sym('x'); >> y=sin(x)+cos(x)
例:计算
ln( x + h ) − ln( x ) L = lim , h→0 h
x M = lim 1 − n→∞ n
n
>> syms x h n; >> L=limit((log(x+h)-log(x))/h,h,0) >> M=limit((1-x/n)^n,n,inf)
24
22
函数简化举例 函数简化举例
例:简化
f (x) =
3
1 + 6 + 12 + 8 x x3 x2
>> syms c alpha beta; >> f=(1/x^3+6/x^2+12/x+8)^(1/3); >> y1=simplify(f) >> g1=simple(f) >> g2=simple(g1)
>> syms x y; >> f= x^2*y + y*x - x^2 + 2*x ; >> collect(f) >> collect(f,y)
20
函数简化
函数简化 y=simple(f): 对 f 尝试多种不同的算法进行 尝试多种不同的算法进行
简化, 简化,返回其中最简短的形式
[How,y]=simple(f): y 为 f 的最简短形式, 最简短形式,
>> Y=sym('[y11,y12,y13;y21,y22,y23]'); >> Z1=X*Y; Z2=X'.*Y;
9
符号对象的基本运算 符号对象的基本运算
基本函数