MATLAB第三讲符号运算及绘图
Matlab中的符号及符号表达式计算方法介绍

Matlab中的符号及符号表达式计算方法介绍概述:在数字计算和科学工程领域,Matlab是一种非常常用的工具。
它被广泛用于进行数据分析、数值计算和模拟。
除了传统的数值计算,Matlab还提供了符号计算功能,这使得用户可以进行符号表达式的建模和计算。
本文将介绍Matlab中的符号计算功能,包括符号和符号表达式的定义、建模和计算方法。
一、符号计算的定义和背景:符号计算是一种将数学问题表示为符号表达式进行求解的方法。
与传统的数值计算相比,符号计算不仅可以处理具体数值,还可以处理未知变量和符号表达式。
这意味着符号计算可以进行精确的数学求解,提供准确的符号化结果。
在Matlab中,符号计算可以通过Symbolic Math Toolbox实现。
通过该工具箱,用户可以定义符号变量、符号表达式和符号函数,并进行各种符号计算。
二、符号变量的定义和使用:在Matlab中,可以使用"syms"命令定义一个或多个符号变量。
符号变量是不具体数值的变量,可以代表任意数值或符号。
下面是一个示例:syms x y z; %定义符号变量x、y和z定义完成后,我们可以将符号变量用于构建符号表达式,并进行各种符号计算。
例如,可以定义一个简单的符号表达式,并计算其导数:f = x^2 + y^2 + z^2; %定义符号表达式fdf_dx = diff(f, x); %计算f对x的导数三、符号表达式的建模和操作:在Matlab中,可以使用定义的符号变量构建复杂的符号表达式,并进行各种符号操作。
例如,可以定义一个二次方程,并求解其根:syms a b c x;equation = a*x^2 + b*x + c; %定义二次方程roots = solve(equation, x); %求解方程的根除了求解方程的根,还可以进行符号表达式的展开、因式分解、合并等操作。
这些符号操作扩展了Matlab的数学建模能力,使得用户能够更加灵活和方便地进行符号计算。
Matlab 课后上机练习3-Matlab绘图和符号运算

11、绘制曲线13++=x x y ,x 的取值范围为[-5,5]。
clear; x=-5:0.1:5; y=x.^3+x+1; plot(x,y,'k'); title('曲线图像'); xlabel('x') ylabel('y') grid on;hold on;2、有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线。
并添加标题:运动曲线图;添加横坐标:时间 t/s ;添加纵坐标:位移 s/mm ;添加图例。
t=0:0.5:10; y1=exp(-0.1*t); y2=exp(-0.2*t); y3=exp(-0.5*t);plot(t,y1,':*r',t,y2,'-^g',t,y3,'-ob') title('运动曲线图'); xlabel('时间 t/s') ylabel('位移 s/mm') legend('a=0.1','a=0.2','a=0.5')3、22y xxe z --=,当x 和y 的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和等高线效果图。
[x,y]=meshgrid([-2:0.2:2]);z=x.*exp(-x.^2-y.^2); mesh(x,y,z) subplot(2,2,1) plot3(x,y,z)title('plot3(x,y,z)') subplot(2,2,2) mesh(x,y,z)title('mesh(x,y,z)') subplot(2,2,3) surf(x,y,z)title('surf(x,y,z)') subplot(2,2,4) surf(x,y,z) shading interptitle('surf(x,y,z) shading interp')shading interp4、在同一坐标内绘制如下曲线:(1)y1=tsin(t)(红色连续线‘—’);(2)y2=t2-cos(t);(蓝色间断线‘—.’)(3)题头:小车运动学分析曲线;图例:y1曲线、y2曲线(4)x轴:时间t/s;y轴:位移曲线/mm (5)曲线上标注文字说明:该运动曲线良好。
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 绘图与例题

机动 目录 上页 下页 返回 结束
二、三维网格图命令mesh
• mesh(X,Y,Z) 生成网格曲面,X,Y,Z是同维数的矩阵 • mesh(x,y,Z) x,y是向量,而Z是矩阵。等价于
机动 目录 上页 下页 返回 结束
三、三维表面图命令surf
• surf的调用格式与mesh相同,不同之处是surf绘的是曲面 而不是网格。
• 三维表面图可以用shading命令修饰其显式形式。
Matlab还提供了waterfall(x,y,z)及contour3(x,y,z)等命 令绘制三维图形。
3
2
在[0,4π]间的图形。
解:syms t
ezplot(‘2/3*exp(-t/2)*cos(3/2*t)’,[0,4*pi])
第二节 Matlab二维特殊图形
Matlab提供了许多其他的二维绘图指令, 大大扩充了Matlab的曲线作图指令,可以满足 用户的不同需要。
注 目录 上页 下页 返回 结束
axis equal 使坐标轴在三个方向上刻度增量相同
axis square 使坐标轴在三个方向上长度相同
axis
返回表示当前图形坐标轴的范围
机动 目录 上页 下页 返回 结束
第四节 Matlab空间曲面绘图
二元函数 z f (x, y) 的图形是三维空间曲面,函
数图形在了解二元函数的特性上帮助很大。
第3章 Matlab 绘图与例题
第一节
第3章
Matlab二维曲线绘图
一、基本绘图指令plot
第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绘图和符号运算

本章目标
• 理解符号运算的有关概念 • 掌握使用符号运算解决符号推导、微积分、 方程等问题的方法
主要内容
•5.1 数值运算与符号运算 •5.2 符号变量和符号表达式 •5.3 符号表示式的运算 •5.4 微积分 •5.5 方程求解
5.1数值运算与符号运算
• 数值运算在运算前必须先对变量赋值,再 参加运算。 • 符号运算不需要对变量赋值就可运算,运 算结果以标准的符号形式表达。
5.2 符号变量和符号表达式
• 符号变量和符号表达式在使用前必须说明
– sym函数
>>f1=sym(‘ a x^2+b x+c’ ) 号表达式 %创建符号变量 f1和一个符
– syms函数
>> clear >> syms a b c x >> whos Name Size a 1x1 b 1x1 c 1x1 x 1x1
例: >> >> >> >> >>
x=[-8:0.5:8]; y=[-8:0.5:8]; [X,Y]=meshgrid(x,y); r=sqrt(X.^2+Y.^2)+eps; Z=sin(r)./r; mesh(X,Y,Z)
二维作图机制
点 线
先画点,后连线
例:y = sin(x), 0 < x < 2 一、画点
第4章 MATLAB绘图
linda 整理
本章目标
• 了解MATLAB的绘图功能 • 掌握二维图形和三维图形的绘制方法 • 能够进行常用的数据可视化处理
Matlab 绘图
如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
第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符号函数的作图

通常工程中用到的符号函数都是以表达是形式体现的,这样有利于计算。
但是,如果有时需要直观地表示符号函数的物理意义,就需要用图形来实现。
1、ezplot函数:画符号函数图形ezplot(f):对于显式函数f=f(x),在默认的范围[-pi<x<pi]上画函数f(x);对于隐函数f=f(x,y),在默认的平面区域[-pi<x<pi,-pi<y<pi]上画函数f(x,y)的图像。
ezplot(f,[min,max]):在指定的范围[min<x<max]内画函数表达式f=f(x)。
若没有图形窗口存在,则该函数先生成标题为Figure N o.1的新窗口,再在该窗口中操作;若已经有图形窗口存在,这在标号最该的图形窗口中进行操作。
ezplot(f,[xmin xmax],fing):在指定标号为fign的窗口中、指定范围[xmin xmax]内画函数f=f(x)的图形。
ezplot(f,[xmin,xmax,ymin,ymax]):在平面矩形区域[xmin<x<xmax, ymin<y<ymax]上画出f(x,y)=0的图像。
ezplot(x,y):在默认范围0<t<2pi内画出参数形式函数x=x(t)与y =y(t)的图形。
ezplot(x,y,[tmin,tmax)]:在指定范围[tmin<t<tmax]内画参数形式函数x=x(t)与y=y(t)的图形。
ezplot(…,figure):在由参量文件figure句柄指定的图形窗口中画函数图形。
例如:画下面的隐函数>> syms x y>> ezplot(2*x^4-y^9)2、ezplot3:三维曲线图ezplot3(x,y,z):在默认的范围0<t<2pi内画参数形式的曲线x=x(t), y=y(t),z=z(t)图像。
ezplot3(x,y,z,[tmin,tmax]):在默认的范围tmin<t<tmax内画参数形式的曲线x=x(t),y=y(t),z=z(t)图像。
实验三 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的符号运算

%创建符号表达式
符号运算与数值运算的区别主要有以下几点: 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的符号运算

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图形功能与符号计算

2
二维图形
含多个输入参数的plot函数 plot(x1,y1,x2,y2,…,xn,yn):当输入参数都为向量时, x1和y1,x2和y2,…,xn和yn分别组成一组向量对, 每一组向量对的长度可以不同。每一向量对可以绘 制出一条曲线,这样可以在同一坐标内绘制出多条 曲线。
3
二维图形
例:作y=sinx在[0,2π]上的图形 x=linspace(0,2*pi,30); y=sin(x); plot(x,y);
坐标系统控制
axis([xmin xmax ymin ymax)] []中分别给出 轴和 轴的最小、最大值 中分别给出x轴和 轴的最小、 中分别给出 轴和y轴的最小
6
二维图形
图形标注
xlabel、ylabel和zlabel分别用于对 、y、z轴加标 、 分别用于对x、 、 轴加标 和 分别用于对 注 title 用于给整个图形加标题 text和gtext 用于在图形中特定的位置加字符串,前 用于在图形中特定的位置加字符串, 和 者字符串的位置在命令中指定, 者字符串的位置在命令中指定,后者用鼠标指定 grid 在图形上加网格
1
−t
25
符号函数作图
一般曲线图
作cos(x)在[-2*pi,2*pi]上的图形 在 上的图形 ezplot(‘cos(x)’) 作cos(x)在[0,pi]上的图形 在 上的图形 ezplot(‘cos(x)’,[0,pi])
作参数方程图
为圆的参数方程: 为圆的参数方程:x=cos(t),y=sin(t)作图 作图 ezplot('cos(t)','sin(t)',[0 2*pi])
23
符号微积分
极限
基础篇-第3章-符号运算

3.1.4 符号运算中的运算符
MATLAB中为符号运算提供了多种多样的运算符,如表3-2所示 表3-2 符号运算中的运算符
符号 + .* * ^ .^ \ / .\ ./ kron , ; 符号用途说明 加 减 点乘 矩阵相乘 矩阵求幂 点幂 左除 右除 点左除 点右除 张量积 分隔符 (a)写在表达式后面时运算后不显示计算结果 (b)在创建矩阵的语句中指示一行元素的结束,例如m=[x y z;i j k] 创建向量的表达式分隔符,如x=a:b:c a(:,j)表示j列的所有行元素;a(i,:)表示i行的所有列元素 创建数组、向量、矩阵或字符串(字母型)
>> [n,d]=numden(k)
n=
[3, 2*x+1] [4, 3*x+4] d=
[ 2,3]
[x^2,1] 这个表达式k是符号数组,numden返回两个新数组n和d,其中n是分子数组,d是分母 数组。如果采用s=numden(f)形式,numden仅把分子返回到变量s中。
findsym(x+i*y-j*z,3)
syms x a y z b; %定义5个符号变量 %定义两个符号表达式 s1=3*x+y;s2=a*y+b
findsym(s1)
findsym(s2,2) syms x y; s=2*x+3*y; findsym(s) ans = x, y
>>
【例3-2】创建符号变量,求复数表达式z=x+i*y的共轭复数
>> x=sym('x','real'); >> y=x+i*y; >> x=sym('x','real'); >> y=sym('y','real'); >> z=x+i*y; >> conj(z)
第三章: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)。
3.2
符号函数的运算
• 对符号函数进行运算,首先必须: (1)定义符号变量 (2)定义符号函数 1. 符号函数中变量的确定
MATLAB中的符号可以表示符号变量和符号常数。 findsym可以帮助用户查找一个符号函数中的符号变量 以及次序。调用格式:findsym(f,n)
MATLAB
2. 函数求极限
*limit(f,x,a) 计算符号表达式f在x→a条件下的极限; *limit(f,a) 计算符号表达式f中由默认自变量趋向于a条 件下的极限; *limit(f,) 计算符号表达式f在默认自变量趋向于0条件 下的极限; *limit(f,x,a,‘right’) 和limit(f,x,a,’left’) 计算符号表达式 f在x→a条件下的右极限和左极限; qh0301.m *limit(f,x,inf) 无穷极限。
1 ln(1 2 x) 例:分别计算 lim sin 3x , xlim( ) 。 x 0 0 x
qh0302.m
MATLAB
3.符号函数求微积分
对可微函数f: d n f ( v ) 函数f对变 (1)微分:dfdvn=diff(f,v,n),即 dv n 量v的n阶微分,n缺省值是1。 对可积函数f: (2)不定积分:int(f,x) (3)定积分:int(f,x,a,b)
MATLAB
(5) subplot——单窗口多曲线分图绘图
调用函数:subplot(m,n,k)
该函数将当前图形窗口分成mn个绘图区域, 即每行n个,共m行,且选定第k个为当前活动区。
例:在一个图形窗口中以子图形式同时绘制正弦、 余弦、正切、余切曲线。
qh0401.m
MATLAB
4. 绘制图形的辅助操作
例:1)对A的每个元素分解因式。
A=[2a2b3x2-4ab4x3+10ab6x4
4
3xy-5x2
a3-b3]
qh0305.m
2)计算表达式S的值。S=(-7x2-8x2)×(-x2+3y2)
MATLAB
5. 级数符号求和
n 1 对于等比无穷级数求和 和的调用格式为:symsum(a,n,n0,nn) 其中a是符 号表达式,n为符号变量,n0和nn为始末项。
调用格式:plotyy(x1,y1,x2,y2).
其中x1-y1对应一条曲线,x2-y2对应一条曲 线。共用一个横坐标,纵坐标有两个,左纵坐标 对应x1-y1,右纵坐标对应x2-y2。 例2:用不同标度在同一坐标内绘制曲线 0.5 x y2 1.5e 0.1x sin(x) y1 e sin(2x) 及
3X1 + X2 - X3 = 3.6 X1 + 2X2 + 4X3 = 2.1 对于线性系统有Ax=b - X1 + 4X2 + 5X3 = -1.4 A=[3 1 -1;1 2 4;-1 4 5];b=[3.6;2.1;-1.4]; x=A\b
x= 1.4818 -0.4606 0.3848
MATLAB
MATLAB
例1:多曲线绘制 • t=0:pi/100:2*pi; • y=sin(t); • y1=sin(t+0.25); y • y2=sin(t+0.5); y1 • plot(t,y,'r+',t,y1,'gp',t,y2,'b-')
y2
MATLAB
(4) plotyy —— 双y轴绘图
MATLAB
• 矩阵除法运算 在MATLAB中,有两种矩阵除法运算: “\” 代表右除(常用除法)和“/”左除运算。 例:2/5=0.4,而2\5=2.5 对于矩阵:A\B表示:A-1*B,即:inv(A)*B 用于解决AX=B
A/B表示:A*B-1,即:A*inv(B)
MATLAB
例1、求解线性方程组的解。
2. 二维数据图形
(1)各对应元素在平面上确定n个点连成的一条直线。 (2)一个二维(n×m)矩阵,n行,m列。
MATLAB
3. plot —— 最基本的二维图形指令
• plot命令自动打开一个图形窗口Figure • 如果已经存在一个图形窗口,plot命令则清除当前图 形,绘制新图形; • 可任意设定曲线颜色和线型; • 可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗 口多曲线分图绘图;可多窗口绘图; • 可给图形加坐标网线和图形加注功能;
(2)绘制复数的向量图:3+2i,4.5-i,-1.5+5i。
subplot(121); pie([7,13,24,19,6]); title('饼图');legend('优秀','良好','中等','及格','不及 格'); subplot(122);compass([3+2i,4.5-i,-1.5+5i]); title('向量图')
qh0404.m
MATLAB
4.2
三维图形(了解)
最基本的三维图形调用函数:plot3(x,y,z, ’s’),其 用法和plot相似。其指令主要用来表现单参数的三维 曲线。
qh0405.m qh0406.m
MATLAB
(2)坐标控制 调用格式:axis([xmin,xmax,ymin,ymax]) hold on/off grid on/off box on/off 保持原有图形。 指的是画出/不画出网络线。 当前坐标呈封闭/开启形式。
清除原有图形:clf
qh0403.m
MATLAB
5. 绘制二维图形的其他函数
MATLAB
plot的一般调用格式为:
(1)plot(x,y,’s’) —— 基本格式,用s指定的点形线型绘 制。x,y是长度相同的一维数组,分别指采样点横、纵坐 标;‘s’指“离散点形”或“连续线型”以及颜色设置。 默认为“蓝色细实线”; (2)plot(X,Y) ——采用默认色彩次序用细实线绘制多条 曲线。X,Y均为m×n数组时,绘制n条曲线;若其中一个 是一维数组,则绘制等行或等列条曲线; (3)plot(X,Y,’s’) ——只能用s指定的点线型色彩绘制多 条曲线。
MATLAB
第二节 二维符号函数绘图 ezplot —— 二维坐标符号函数绘图
(1)ezplot(f,[x1,x2]) f为含单变量的符号函数,x1-x2为取值围,默认为 [-2pi,2pi]。 (2)ezplot(x,y,[t1,t2]) x=f(t),y=f(t)为参数方程符号函数,t1-t2为参数变量 的取值围。 (3)ezplot(‘u(x,y)’,[x1,x2],[y1,y2]) 两变量隐函数:u(x,y)=0,[x1,x2]和[y1,y2]表示取值 范围。
s
1 n 2 ,求
例:求下列级数之和:
1 1 1 1 s1 1 ... 2 ... 4 9 16 n
syms n s1=symsum(1/n^2,n,1,inf) 结果:s1 =1/6*pi^2
MATLAB
6. 常微分方程的符号求解
命令格式:S=dsolve(‘eqn1, eqn2’,’cond1, cond2’,’v’)
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')
ans =
exp(-x)*cos(x)+exp(-x)*sin(x)
MATLAB
>> x1=0:pi/100:2*pi; >> x2=0:pi/100:3*pi; >> y1=exp(-0.5*x1).*sin(2*pi*x1); >> y2=1.5*exp(-0.1*x2).*sin(x2); >> figure(2) >> plotyy(x1,y1,x2,y2)
(1)其他形式的线性直角坐标图
在线性直角坐标系中,其他形式的图形有条形图、 阶梯图、杆图和填充图等:
bar(x,y,’s’) stairs(x,y, ’s’)
stem(x,y, ’s’)
fill(x1,y1, ’s1’,x2,y2, ’s2’) qh04031.m
MATLAB
(2)极坐标图
极坐标图,调用格式:polar(theta,rho, ’s’) ,对应 代表极角,极坐标矢径。
1.建立符号变量和符号常数: 1)用单引号‘’表示。(少用) 2)用函数sym(‘’)表示。 3)用命令syms表示多个变量。 注意:1)符号代数式中的符号应另行创建; 2)‘’中空格等都视为符号; 2.建立符号表达式:包括代数式、符号方程、符号矩阵、 抽象函数。其中已创建的代数式等可以赋值。
MATLAB
x 例:已知: f (cosx )2 ,求
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)图形标注
函数调用格式:
title(‘图形名称’) xlabel(‘x轴说明’) ylabel(‘y轴说明’)