第三讲 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
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
符号运算 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 函数会自动将表达式化简为最简形式。
第3章 MATLAB符号计算-习题讲解
9.微分 对x、y、c、d进行微分: f=sym('a*x^3+b*y^2+c*z+d') diff(f) //x为自由变量,可缺省 diff(f,'y') diff(f,'c') diff(f,'d') 求y趋向于1的极限: limit(f,'y',1) 对x的2、3次微分: diff(f,2) diff(f,3)
P296: 1,3,4,5,7,8,9,11,15
>> A.*B ans = [ a*c, b*d] [ c*e, d*f]
1. f=sym(‘a*x^3+b*x^2+c* x+d’) 3. A=sym('[a b;c d]')
B=sym('[c d;e f]') A+B ans = [ a+c, b+d] [ c+e, d+f] >> A-B ans = [ a-c, b-d] [ c-e, d-f]
7.复合函数/逆函数f =1-sin(x)^2 算值:
g=2*x+1
f=sym('1-sБайду номын сангаасn(x)^2')
g=sym('2*x+1') subs(f,1) 复合: compose(f,g) 逆函数: finverse(g)
8.多项式转换 多项式系数形式: f=sym('x^3+3*x^2-6*x+5') sym2poly(f) 代替: subs(f,'a') subs(f,5)
11.泰勒级数展开式 >> syms x; >> taylor(sin(x),10) ans = x-1/6*x^3+1/120*x^5-1/5040*x^7+1/362880*x^9
3.符号运算
2.非线性方程组的符号解法 (1).非线性方程求解: solve(‘fun’),求得解析解 x=solve(‘x^2+3*x+4=0’) %得解析解 x1=vpa(x,6) %化为数值解 (2).非线性方程组求解 fsolve(‘fun’,x0) fun由M文件给出函数, x0为初值,是一种迭代解法.
2. 绘制函数图函数 fplot fplot(fun,lims) %fun为M文件的函数名或是对 变量x的可执行字符串. fplot(fun,lims,n) %n--线条的宽度 fplot(fun,lims,’LinSpec’) %LinSpec线条的类型 演示8: fuhao08.m
22
3.10 图示化函数计算器
23
3.11 Maple接口
相对于Maple软件的2000多条的符号计算命令来说, 前面介绍的内容只是利用了Maple中最常用的计算命令中 的一部分。为了在Matlab的工作环境下进一步熟悉Maple 的其他符号计算功能,本节将介绍如何在Matlab中直接调 用Maple的内部命令进行计算。 在Matlab中实现Maple函数的直接调用可由maple和 mfun两个命令来实现。
1. maple命令 在Matlab的环境下,为了实现对Maple绝大多数的 符号计算命令的调用,Symbolic Toolbox工具箱中提 供了一个通用的命令maple。
实验三MATLAB的符号运算
实验三 MATLAB 的符号运算一 实验目的:1.掌握符号对象的创建及符号表达式化简的基本方法;2.掌握符号微积分、符号方程的求解的基本方法。
二 实验装置:计算机三 实验内容:1.符号对象的创建(1) 建立符号变量使用sym 函数把字符表达式'2*sin(x)*cos(x)'转换为符号变量。
2.符号表达式的化简(1)因式分解对表达式f=x 3-1 进行因式分解。
(2) 符号表达式的展开对符号表达式f=cos(x+y)进行展开。
(3)符号表达式的同类项合并对于表达式f=(2x 2*(x+3)-10)*t ,分别将自变量x 和t 的同类项合并。
(4)符号表达式的化简(5)符号表达式的分式通分对表达式 进行通分。
(6)符号表达式的替换用新变量替换表达式a+b 中变量b 。
3.符号微积分(1) 符号极限计算表达式 的极限。
(2)符号微分计算表达式f=sinx 的微分。
(3)符号积分。
例:简化32381261+++=xx x f 22x y y x f +=xtgx x lim 0→()⎰+dzz x31计算表达式 的积分。
(4)符号求和计算表达式 4.符号方程的求解求解代数方程组 四 实验要求:1.按照要求预习实验;2.在MATLAB 中运行实验程序验证仿真结果;3. 按照要求完成实验报告。
.10005∑k⎪⎩⎪⎨⎧=--=-+=+-043035218472z y x z y x z y x。
实验三 MATLAB符号计算
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
expand使用指令 y=0.14-(1.2e+002)*(-2.4005*(0.445-x)^7+4.2505*(0.445x)^6-2.2336*(0.445-x)^5+0.4993*(0.445-x)^40.0514*(0.445-x)^3+0.0025*(0.445-x)^2);
符号矩阵的生成
符号矩阵可通过函数sym来生成。符号矩阵中的元素是任何不带等号的符 号表达式,各符号表达式的长度可以不相同;符号矩阵中,以空格或逗号 分隔的元素指定的是不同列的元素而分号分隔的元素指定的是不同行的元 素。 例:
syms x; A=sym(‘[cos(x),sin(x),x;-x+1 x^2+x+1 tan(x)]’) A= [ cos(x), sin(x), x] [ -x+1, x^2+x+1, tan(x)] >> size(A) %求符号矩阵的大小 ans = 2 3 > a=[1 2 3 4;4 5 6 7]; >> b=sym(a) b= [ 1, 2, 3, 4] [ 4, 5, 6, 7]
第三讲MATLAB的符号运算
④计算所需的时间较长。
• Symbolic Math Toolbox——符号运算工具包通过调用
Maple软件实现符号计算的。
• Maple软件——主要功能是符号运算,它占据符号软件
的主导地位。
2. 字符串与符号变量、符号常量
字符串对象 f = 'sin(x)+5x'
由符号变量构成的符号函数和 符号方程
• 符号表达式是由符号常量、符号变量、符号函
数运算符以及专用函数连接起来的符号对象。
• 包括:符号函数和符号方程。判断看带不带等
号。 例: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')
factor(x^3-y^3)
• simplify( ) 该函数是一个强有力的具有
普遍意义的工具,它利用Maple化简规则 对表达式进行简化。
例:S=sym('[(x^2+5*x+6)/(x+2);sqrt(16)]')
simplify(S)
• simple( ) 用几种不同的算术简化规则对
符号表达式进行简化,使其用最少的字 符来表示。
行是自变量 x 的取值范围和常数 a 的值。
• 第四行只对 f 起作用,如求导、积分、简
化、提取分子和分母、倒数、反函数。
• 第五行是处理 f 和 a 的加减乘除等运算。
• 第六行前四个进行 f 和 g 之间的运算,后
三个分别是:求复合函数;把 f 传递给 ; swap是实现 f 和 g 功能的交换。
MATLAB第三讲符号运算及绘
化简根号表达式
使用`sqrt`函数化简根号表达式,例如 `sqrt(x^2)`化简为`abs(x)`。
符号函数的计算
1 2
符号函数的求值
使用`subs`函数将符号表达式中的变量替换为具 体数值进行计算,例如`subs(expr, x, 2)`。
符号函数的复合
使用函数句柄和参数列表定义符号函数,例如`f = @(x) x^2 + 2*x + 1`。
符号方程求解
使用solve函数求解代数方程,例如 solve(x^2 - 4*x + 4)。
绘图实例
线性图
使用plot函数绘制线性图,例如plot(x, y)。
柱状图
使用bar函数绘制柱状图,例如bar(x, y)。
散点图
使用scatter函数绘制散点图,例如scatter(x, y)。
曲面图
使用surf函数绘制曲面图,例如surf(x, y, z)。
三维等高线图
使用contour函数绘制三维等高线 图,可以展示三维空间中数据点的 等高线分布。
图形标注与修饰
标题和轴标签
使用title和xlabel、ylabel、 zlabel函数添加标题和轴标签,
以解释图形含义和坐标轴意义 。
网格线和参考线
使用grid on和hold on命令添 加网格线和参考线,以增强图 形可读性和比较不同数据系列 。
趋势。
条形图
使用bar函数绘制条形图, 可以展示分类数据的大
小比较。
饼图
使用pie函数绘制饼图, 可以展示各类数据占总
体的比例。
绘制三维图形
三维散点图
使用scatter3函数绘制三维散点 图,可以展示数据点在三维空间
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能够方便地进行数学上的符号运算,为数学研究和工程计算提供了强大的工具。
第三章_MATLAB的符号运算
%创建符号表达式
符号运算与数值运算的区别主要有以下几点: A 传统的数值型运算因为要受到计算机所保留的有效位数的限制,它的内部表示法总是采 用计算机硬件提供的 8 位浮点表示法, 因此每一次运算都会有一定的截断误差, 重复的多次 数值运算就可能会造成很大的累积误差。 符号运算不需要进行数值运算, 不会出现截断误差, 因此符号运算是非常准确的。 B 符号运算可以得出完全的封闭解或任意精度的数值解。 C 符号运算的时间较长,而数值型运算速度快。 3.2.1 提取分子分母 如果符号表达是有理分式形式或可展开为有理分式形式,则可通过函数 numden 来提取符号 表达式中的分子分母。numden 函数的调用形式如下: [n,d]=numden(a) 提取符号表达式 a 的分子与分母,并分别将其存放在 n 与 d 中 n=numden(a) 提取符号表达式 a 的分子与分母,但只把分子存放在 n 中 例 提取符号表达式的分子与分母 >> f=sym('a*x^2/(b-x)'); [n,d]=numden(f) n= -a*x^2 d= -b+x 3.2.2 符号表达式的基本代数运算 符号表达式的加、减、乘、除四则运算及幂运算等基本的代数运算,与矩阵的数值运算几乎 完全一样。 其中, 符号表达式的加、 减、 乘、 除运算可分别有函数 symadd、 symsub、 symmul、 symdiv 来实现,也可与矩阵的数值运算一样,用“+” 、 “-” 、 “×” 、 “÷”符号进行运算, 而符号表达式的幂运算也可以由函数 sympow 来实现,也可以由幂运算符“^”来实现。 例 >> f='4*x+5'; g='2*x^2+5*x+6'; symadd(f,g) ans = 9*x+11+2*x^2 symsub(f,g) ans = -x-1-2*x^2 symmul(f,g) ans =
matlab符号运算 多项式
一、介绍matlab符号运算matlab符号运算是指利用matlab软件进行代数表达式的计算和求解。
在matlab中,符号运算可以实现对多项式的加减乘除、导数和积分等操作,非常适用于代数表达式的计算和求解。
在工程、数学和物理等领域,matlab符号运算被广泛应用,能够高效地解决各种代数运算问题。
二、matlab符号运算的基本操作1. 创建符号变量在matlab中,可以使用syms函数来创建符号变量,例如:```matlabsyms x y```这样就创建了两个符号变量x和y,可以用于代数表达式的计算和求解。
2. 代数表达式的运算利用符号变量创建代数表达式,并进行加减乘除等运算,例如:```matlabf = x^2 + 2*x + 1;g = x + 1;h = f * g;```这样就实现了对代数表达式的乘法运算,h为结果表达式。
3. 多项式求导利用diff函数可以对代数表达式进行求导,例如:```matlabf = x^2 + 2*x + 1;df = diff(f,x);```这样就求出了代数表达式f对x的一阶导数df。
4. 多项式积分利用int函数可以对代数表达式进行积分,例如:```matlabf = x^2 + 2*x + 1;F = int(f,x);```这样就求出了代数表达式f对x的不定积分F。
5. 多项式因式分解利用factor函数可以对代数表达式进行因式分解,例如:```matlabf = x^2 + 2*x + 1;factored_f = factor(f);```这样就对代数表达式f进行了因式分解,得到了其因式分解形式。
三、matlab符号运算在工程应用中的实例在工程领域,matlab符号运算被广泛应用于各种代数表达式的计算和求解。
以下以电路分析为例,介绍了matlab符号运算在工程应用中的实例。
1. 电路分析中的符号运算在电路分析中,通常需要对电路中的电压、电流、电阻等元件进行建模和分析。
第三章 MATLAB符号运算
第3章 MATLAB符号计算符号计算则是可以对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理。
MATLAB具有符号数学工具箱(Symbolic Math Toolbox),将符号运算结合到MATLAB的数值运算环境。
符号数学工具箱是建立在Maple软件基础上的。
3.1 符号表达式的建立3.1.1 创建符号变量和表达式Symbolic Math Toolbox规定在进行符号计算时,首先要定义基本的符号对象然后才能进行符号运算。
创建符号变量和符号表达式可以使用sym和syms命令。
1. 使用sym命令创建符号变量和表达式语法:sym(‘变量’,参数) %把变量定义为符号对象2.使用syms命令创建符号变量和符号表达式语法:syms(‘arg1’, ‘arg2’, …,参数) %把字符变量定义为符号变量syms arg1 arg2 …,参数%把字符变量定义为符号变量的简洁形式说明:syms用来创建多个符号变量,这两种方式创建的符号对象是相同的。
参数设置和前面的sym命令相同,省略时符号表达式直接由各符号变量组成。
说明:参数用来设置限定符号变量的数学特性,可以选择为’positive’、’real’和’unreal’,’positive’表示为“正、实”符号变量,’real’表示为“实”符号变量,’unreal’表示为“非实”符号变量。
如果不限定则参数可省略。
【例3.1】创建符号变量,用参数设置其特性。
>> syms x y real %创建实数符号变量>> z=x+i*y; %创建z为复数符号变量>>real(z) %复数z的实部是实数xans =x【例3.2】创建符号表达式。
>> f1=sym('a*x^2+b*x+c')f1 =a*x^2+b*x+c【例3.3】使用syms命令创建符号变量和符号表达式。
>> syms a b c x %创建多个符号变量>>f2=a*x^2+b*x+c %创建符号表达式f2 =a*x^2+b*x+c3.1.2符号表达式的代数运算符号运算与数值运算的区别主要有以下几点:▪传统的数值型运算因为要受到计算机所保留的有效位数的限制,它的内部表示法总是采用计算机硬件提供的8位浮点表示法,因此每一次运算都会有一定的截断误差,重复的多次数值运算就可能会造成很大的累积误差。
MATLAB的符号运算
10
③ 符号对象与数值对象的转换
将数值对象转化为符号对象 函数调用格式:sym(A) A=[1/3,2.5;1/0.7,2/5]
A=
0.3333 2.5000 1.4286 0.4000
sym(A)
ans = [ 1/3, 5/2] [10/7, 2/5]
2013年8月6日12时46
4
2. 符号变量与符号表达式
syms v1 v2 v3 … vn
—— 定义符号变量 名
syms x f = sin(x)+5*x
f —— 符号变量(矩阵) sin(x)+5*x —— 符号表达式
2013年8月6日12时46
5
3.符号对象的创建
数值矩阵A=[1,2;3,4] A=[a,b;c,d] —— 不识别
11
将符号对象转化为数值对象
函数调用格式: numeric(A) A= [ 1/3, 5/2] [10/7, 2/5]
numeric(A)
ans = 0.3333 2.5000 1.4286 0.4000
2013年8月6日12时46
12
二、符号运算
1.符号对象运算 数值运算中,所有对象运算操作指 令都比较直观、简单。例如:a=b+c; a=a*b ;A=2*a^2+3*a-5等。
ans = cos(x)/sin(2*x)+cos(x)*sin(2*x)
x=pi/4;subs(ans)
ans = 1.4142 2013年8月6日12时46
15
例1 f= 2*x^2+3*x-5; g= x^2+x-7;
syms x f=2*x^2+3*x-5; g= x^2+x-7; h=f+g h= 3*x^2+4*x-12 例2 f=cos(x);g= sin(2*x); syms x f=cos(x);g=sin(2*x); f/g+f*g ans = cos(x)/sin(x)+cos(x)*sin(x)
MATLAB第三讲符号运算及绘图
df dx
和 0 x 2 dx (cosx)
1
qh0303
MATLAB
4. 基本符号表达式运算
(1)四则运算(计算结果依然是符号表达式,但结果 最简)
如:syms x y z; f1=2*x+x^2*x-5*x+x^3 f2=2*x/(5*x) f3=(x+y)*(x-y) 符号表达式得到最简形式 f 1=-3*x+2*x^3 f2 =2/5 f3 =(x+y)*(x-y)
1.建立符号变量和符号常数: 1)用单引号‘’表示。(少用) 2)用函数sym(‘’)表示。 3)用命令syms表示多个变量。 注意:1)符号代数式中的符号应另行创建; 2)‘’中空格等都视为符号; 2.建立符号表达式:包括代数式、符号方程、符号矩阵、 抽象函数。其中已创建的代数式等可以赋值。
MATLAB
2. 二维数据图形
(1)各对应元素在平面上确定n个点连成的一条直线。 (2)一个二维(n×m)矩阵,n行,m列。
MATLAB
3. plot —— 最基本的二维图形指令
• plot命令自动打开一个图形窗口Figure • 如果已经存在一个图形窗口,plot命令则清除当前图 形,绘制新图形; • 可任意设定曲线颜色和线型; • 可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗 口多曲线分图绘图;可多窗口绘图; • 可给图形加坐标网线和图形加注功能;
n 2 2
n
MATLAB
例:
d y 2 dx
2
dy 2 2y 0 dx
dy y (0) 1 , ( ) 0 0 dx
试求微分方程的解。 y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')
MATLAB的运算符号及函数
3.常用的函数及常量
常用的函数及常量如表7-2所示。
函数名 abc(x)
pi sin(x) asin(x) cos(x)
函数功能 绝对值函数 |x|
圆周率 正弦函数 sin(x) 反正弦函数 arcsin(x) 余弦函数 cos(x)
acos(x)
反余弦函数 arccos(x)
tan(x) cot(x)
经济数学
MATLAB的运算符号及函数
1.基本运算
MATLAB能识别常用的加(+)、减(-)、乘(*)、除(/)及 幂次运算符号(^)等绝大部分数学运算符号。因此,要在 MATLAB中进行基本数学运算,只需在命令窗口中的提示符(>>) 之后直接输入运算式并按Enter键即可。
例如:>>(2 * 3+3 * 4)/10
中(均用小括号),从最里层向最外层逐渐脱开。
2.常用快捷键 常用快捷键如表7-1所示。
快捷键 ↑(Ctrl+P) ↓(Ctrl+N) ←(Ctrl+B) →(Ctrl+F) Esc(Ctrl+U) Del(Ctrl+D)
表7-1
功能 调用上一行 调用下一行 光标左移一个字符 光标右移一个字符 清除当前输入行 删除光标处右侧字符
正切函数 tan(x) 余切函数 cot(x)
函数名 sum(x) sqrt(x)
inf exp(x) log(x)
log10(x)
log2(x) sign(x)
表7-2
函数功能 向量元素求和
平方根 无穷大 指数 ex 自然对数 lnx 以 10 为底的常用对数
lgx 以 2 为底的对数符号 Nhomakorabea数概率学与数理统计
matlab的符号计算
matlab的符号计算符号数学工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合,有复合、简化、微分、积分以及求解代数方程和微分方程的工具。
另外还有一些用于线性代数的工具,求解逆、行列式、正则型式的精确结果,找出符号矩阵的特征值而无由数值计算引入的误差。
工具箱还支持可变精度运算,即支持符号计算并能以指定的精度返回结果。
符号数学工具箱中的工具是建立在功能强大的称作Maple软件的基础上。
它最初是由加拿大的滑铁卢(Waterloo)大学开发的。
当要求MATLAB进行符号运算时,它就请求Maple去计算并将结果返回到MATLAB命令窗口。
因此,在MATLAB中的符号运算是MATLAB处理数字的自然扩展。
8.1 符号表达式符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或字符串数组。
不要求变量有预先确定的值,符号方程式是含有等号的符号表达式。
符号算术是使用已知的规则和给定符号恒等式求解这些符号方程的实践,它与代数和微积分所学到的求解方法完全一样。
符号矩阵是数组,其元素是符号表达式。
MATLAB在内部把符号表达式表示成字符串,以与数字变量或运算相区别;否则,这些符号表达式几乎完全象基本的MATLAB命令。
下表列有几则符号表达式例子以及MATLAB等效表达式。
符号表达式 MATLAB表达式'1/(2*x^n)'y='1/sqrt(2*x)''cos(x^2)-sin(2*x)'M=sym('[a,b;c,d]')f=int('x^3/sqrt(1-x)','a','b')MATLAB符号函数使我们能用多种方法来操作符号表达式,比如,>>diff('cos(x)') %differentiate cos(x) with respect to xans=-sin(x)>>M=sym('[a,b;c,d]') %create a symbolic matrix MM=[a,b][c,d]>>determ(M) %find the determinant of the symbolic matrix Mans=a*d-b*c要注意的是,以上第一例的符号表达式是用单引号以隐含方式定义的。
第三章:MATLAB的符号运算
注1:即使利用clear语句删除x,并不能改变MuPAD内存中对x的限制设 定,再引入变量x是,仍然带有这一设定。
注2:sym x clear 只改变x的限定,并没有删除和改变x的值。
例:求 3x2 5x 1 0的解
>> clear >> syms x >> solve(3*x^2+5*x+1) ans =
>> y=solve(f) y= -(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a)
>> y=solve(f,a) y= -(c + b*x)/x^2
符号表达式 符号表达式有两种不同的生成方式: 1、直接由sym函数生成 如: f=sym(‘2*sin(x)+5*cos(x)’) 这样的表达式称为串型表达式。 2、利用符号变量经符号运算生成 如: syms x y f=sin(x)+2*cos(y)
- 13^(1/2)/6 - 5/6 13^(1/2)/6 - 5/6
>> assume(x>=-5/6) >> solve(3*x^2+5*x+1)
ans = 13^(1/2)/6 - 5/6
例:求方程
x3
475 5 x 0 的根 100 2
求第一象限的根
>> syms x 'clear' >> assume(real(x)>=0) >> assumeAlso(imag(x)>=0) >> solve(x^3+475*x/100+5/2) ans = (79^(1/2)*i)/4 + 1/4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三讲MATLAB的符号运算——matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包Symbolic Math Toolbox符号运算的功能•符号表达式、符号矩阵的创建•符号线性代数•因式分解、展开和简化•符号代数方程求解•符号微积分•符号微分方程一、创建符号变量1.什么是符号运算•与数值运算的区别※数值运算中必须先对变量赋值,然后才能参与运算。
※符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。
•特点:①运算对象可以是没赋值的符号变量②可以获得任意精度的解•Symbolic Math Toolbox——符号运算工具包通过调用Maple软件实现符号计算的。
•maple软件——主要功能是符号运算,它占据符号软件的主导地位。
2. Sym函数定义符号变量(1)S=sym(arg)Construct symbolic numbers, variables and objects.S = SYM(A) constructs an object S, of class 'sym', from A.If the input argument is a string, the result is a symbolic number or variable.If the input argument is a numeric scalar or matrix,the result is a symbolic representation of the given numeric valuesx = sym('x') creates the symbolic variable with name 'x' and stores the result in x. x = sym('x','real') also assumes that x is real, so that conj(x) is equal to x.alpha = sym('alpha') andr = sym ( 'Rho‘ , 'real') are other examples. Similarly, k =sym('k','positive') makes k a positive (real) variable.x = sym('x','unreal') makes x a purely formal variable with no additional properties (i.e., insures that x is NEITHER real NOR positive). See also: SYMS.Statements like pi = sym('pi') and delta = sym('1/10') create symbolic numbers which avoid the floating point approximations inherent in the values of pi and 1/10. The pi created in this way temporarily replacesthe built-in numeric function with the same name.S = sym(A,flag) converts a numeric scalar or matrix to symbolic form.The technique for converting floating point numbers is specified by the optional second argument, which may be 'f', 'r', 'e' or 'd'. The default is 'r'.'f' stands for 'floating point'. All values are represented in the form '1.F'*2^(e) or '-1.F'*2^(e) where F is a string of 13 hexadecimal digits and e is an integer. This captures the floatingpoint values exactly, but may not be convenient for subsequent manipulation.For example, sym(1/10,'f') is '1.999999999999a'*2^(-4) because 1/10 cannot be represented exactly in floating point.'r' stands for 'rational'. Floating point numbers obtained by evaluating expressions of the form p/q, p*pi/q, sqrt(p), 2^q and 10^q for modest sized integers p and q are converted to the corresponding symbolic form. This effectively compensates for the roundoff error involved in the original evaluation, but may not represent the floating point value precisely. If no simple rational approximation can be found, an expression of the form p*2^q with large integers p and q reproduces the floating point value exactly. For example, sym(4/3,'r') is '4/3', but sym(1+sqrt(5),'r') is 286977268806824*2^(-51)'e' stands for 'estimate error'. The 'r' form is supplemented by a term involving the variable 'eps' which estimates the difference between the theoretical rational expression and its actual floating point value. For example, sym(3*pi/4) is 3*pi/4-103*eps/249.'d' stands for 'decimal'. The number of digits is taken from the current setting of DIGITS used by VPA. Fewer than 16 digits looses some accuracy, while more than 16 digits may not be warranted.For example, with digits(10), sym(4/3,'d') is 1.333333333, while with digits(20), sym(4/3,'d') is 1.3333333333333332593,which does not end in a string of 3's, but is an accurate decimal representation of the floating point number nearest to 4/3.3.syms 函数定义符号变量Short-cut for constructing symbolic objects.SYMS arg1 arg2 ...is short-hand notation forarg1 = sym('arg1');arg2 = sym('arg2'); ...SYMS arg1 arg2 ... realis short-hand notation forarg1 = sym('arg1','real');arg2 = sym('arg2','real'); ...SYMS arg1 arg2 ... positiveis short-hand notation forarg1 = sym('arg1','positive');arg2 = sym('arg2','positive'); ...SYMS arg1 arg2 ... unrealis short-hand notation forarg1 = sym('arg1','unreal');arg2 = sym('arg2','unreal'); ...Each input argument must begin with a letter and must contain onlyalphanumeric characters.By itself, SYMS lists the symbolic objects in the workspace.Examples:syms x beta realis equivalent to:x = sym('x','real');beta = sym('beta','real');syms k positiveis equivalent to:k = sym('k','positive');To clear the symbolic objects x and beta of 'real' or 'positive' status, typesyms x beta unreal二、创建符号•1、创建符号表达式和符号方程•2、创建符号矩阵•3、数字矩阵和符号矩阵的转换•4、符号矩阵的引用和修改•5、建立符号数学函数•6、数据类型间的相互转换1、创建符号表达式和符号方程•(1)采用sym 函数•f=sym(‘a*x^2+b*x+c’) 符号表达式•f=sym(‘a*x^2+b*x+c=0’) 符号方程•(2)直接法•f= ‘a*x^2+b*x+c’ 符号表达式•f= ‘a*x^2+b*x+c=0’ 符号方程2、创建符号矩阵•(1)由sym函数直接创建•A=sym(‘[4+x, x^2, x; x^3,5*x-3,x*a]’)或者syms x,aA=[4+x, x^2, x; x^3,5*x-3,x*a](2)由字符串直接创建a=['[4+x x^2 x ]';'[x^3 5*x-3 x*a]']注意:字符串的长度相等,否则出错3、数字矩阵和符号矩阵的转换•用sym函数•例:•A=[2/5,4/0.78, sqrt(23)/3;0.33,0.333,log(4)]• A =•0.4000 5.1282 1.5986•0.3300 0.3330 1.3863•FA=sym(A)•FA =•[ 2/5, 200/39, sqrt(23/9)]•[ 33/100, 333/1000, 6243314768165359*2^(-52)]4、符号矩阵的引用和修改•在符号计算中,引用和修改只能对符号矩阵的元素一个一个地进行•例:syms a b c d•A=[a,a+c,d+b;c,d,a+c;a+c+d,c,c+d*a];•syms eee ddd•A(1,3)=eee•A(3,2)=ddd5、建立符号数学函数•(1)建立一般数学函数•sym x y z•F=sin(x+y)/(x-y)•G=sqrt(x^2+y^2+z^2)•建立m文件•(2)建立抽象的数学函数•sym var1 var2 var3•F=sym(‘f(var1 var2 var3)’)•例:建立一阶差分函数hx fhxfdf)( )(-+=•Syms x h•F=sym(‘f(x)’)•Df=(subs(f, x,x+h)-f))/h6、数据类型之间的相互转换•数值型、字符型、符号型数据类型,符号型级别最高,数值型级别最低•(1)转换为数值变量•X=double(S) 将符号变量变为数值变量•(2)转换为符号变量•S=sym(f) 对变量f没有限制符号矩阵与数值矩阵的转换将数值矩阵转化为符号矩阵函数调用格式:sym(A)A=[1/3,2.5;1/0.7,2/5]A =0.3333 2.50001.4286 0.4000sym(A)ans =[ 1/3, 5/2][10/7, 2/5]将符号矩阵转化为数值矩阵函数调用格式:numeric(A)A =[ 1/3, 5/2][10/7, 2/5]numeric(A)ans =0.3333 2.50001.4286 0.4000三、符号运算1.符号矩阵运算所有涉及符号运算的操作都有专用函数来进行,5.0 以上也可以用运算符,矩阵运算操作指令都比较直观、简单。