第三讲数值计算与符号计算

合集下载

第3章 符号运算与推导

第3章 符号运算与推导
或下 (k<0)第k条次对角线元素
A=[1 2 3;4 a 6;7 8 9] A= [ 1, 2, 3] [ 4, a, 6] [ 7, 8, 9]
diag(A) ans = [ 1] [ a] [ 9] diag(A,-1) ans = [ 4] [ 8]
v=[1 2 a 6] diag(v) %创建以v为主对角元素的矩阵 diag(v,k) %创建以v为主对角线上(k>0)
⑥符号数组的除法
A./B和B.\A都为对应分量进行相除,A与B 为同型矩阵或有一个为标量。如果有标量, 则把标量扩大为与另外一个同型的矩阵,再 按对应的分量进行操作。
B=sym('[a,b;c,d]'); C=sym('[e,f;g,h]'); B./C ans = [ a/e, b/f] [ c/g, d/h] B=sym('[a,b;c,d]'); C=sym('[e,f;g,h]'); B.\C ans = [ e/a, f/b] [ g/c可用A’或A .’ ,也可以用命令: transpose(A)来实现。 3、符号矩阵的行列式运算 求方阵A的行列式:det(A)
4、符号矩阵的逆运算使用
inv(A)或A^-1
5、符号矩阵的秩运算命令为 rank(A)
6、符号矩阵对角元素 diag(A) %求矩阵A的主对角元素 diag(A,k) %求矩阵A的主对角线上(k>0)
A=[a/x+a/y,1/(b*x);a*x/c,c/3]; [N,D]=numden(A) N= [ a*(x+y), 1] % 分子矩阵 [ a*x, c] D= [ x*y, b*x] % 分母矩阵 [ c, 3]

第三讲运算符和表达式PPT教案

第三讲运算符和表达式PPT教案

第三讲 运算符和表达式
④ 在调用函数时,对于实参的求值顺序,ANSI C也没有规定。 有的系统按从左到右的顺序求值,有的相同按从右到左的 顺序求值。
例3.2】 main( ) {
int i=5; printf("\n%d,%d",i, ++i); }
若按从左到右的次序处理,预期的运行结 果为: 5, 6
第17页/共30页
第三讲 运算符和表达式
关系运算符和关系表达式
关系运算符
<
种类:< <= == >= ><>= !=优先级6(高)
结合方向:自左向右 >=
优先级别:
例 c>a+b
//c>(a+b)
== !=
优先级7(低)
a>b!=c //(a>b)!=c
关系表达a=式=b的<c值:/是/a逻==辑(b值<c“) 真”或“假”,用1
强制类型转换:(类型) 分量运算符:(. ->) 下标运算符:([]) 其它 :(( ) -)
第1页/共30页
第三讲 运算符和表达式
学习运算符应注意:
运算符功能 与运算量关系
要求运算量个数 要求运算量类型
运算符优先级别 结合方向 结果的类型
第2页/共30页
第三讲 运算符和表达式
3.1 算术运算 3.2 赋值运算 3.3 自增、自减运算 3.4 关系运算与逻辑运算 3.5 条件运算 3.6 逗号运算 3.7 位运算 3.8 类型转换 第3页/共30页
第三讲 运算符和表达式
3.1 算术运算
3.1.1 算术运算符
基本算术运算符: + - * / %

Matlab符号计算.ppt

Matlab符号计算.ppt
例:syms('a1','a2','a3')
3.1 符号变量的定义 格式二:syms 变量1 变量2 …….
例:syms a1 a2 a3 注意:用格式二时,变量和变量之间只能用空格隔开, 不能用其他分隔符。
符号变量定义之后,就可以参与各种解析运算了。
• 例:创建符号复数变量a+bi;
• 方法一:
分区间为[a,b],其中a和b是数值; (4)int(f,‘m’,‘n’) 返回f对预设变量的积分值,积
分区间为[m,n],其中m,n是符号式;
例:已知 f (x) ax2 bx c 求f(x)的积分
例 求定积分。
命令如下:
x=sym('x');t=sym('t'); int(abs(1-x),1,2)
Maple函数的使用:
格式:maple(‘函数’,变量1,变量2,…….)
其中,函数是maple中的函数名称,变量1,变量2等是 函数所用的参数。
如:matlab中没有专门求差分方程的函数,就可以调用 Maple符号运算工具箱中的迭代运算函数rsolve来求解, 通过maple函数来访问rsolve函数。
3
结果:
3.5 方程求解
1、代数方程 利用符号表达式解代数方程所需要的函数为solve(f),
作用为解符号方程式f; 例:求一元二次方程 f (x) ax2 bx c 的根
例2:
2、常微分方程
matlab解常微分方程式的函数为:
dsolve(‘equ’,’condition’);
其中,equ代表常微分方程式,condition为初始条件, 如果初始条件没有给出,则给出通解形式。

第3章 MATLAB符号计算

第3章  MATLAB符号计算
指数和对数函数。在符号计算中,指数函数sqrt、exp、expm的使用 方法与数值计算的使用方法完全相同;对数函数在符号计算中只有 自然对数log(表示ln),而没有数值计算中的log2和log10。
复数函数。在符号计算中,复数的共轭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)基本运算符。
① 运算符“”、“”、“*”、 “\”、“/”、“^”分别实现符号 矩阵的加、减、乘、左除、 右除、求幂运算。
② 运算符“.*”、“./”、“.\”、 “.^”分别实现符号数组的乘、 左除、右除、求幂,即数 组间元素与元素的运算。

数值计算和符号计算

数值计算和符号计算

for i=2:length(t)
if ysign(i)~=ysign(i-1) >> n,yzero
n=n+1;yzero(n)=i-1; n =
%与前一函数值符号相反,则表示有一零点
end
6 %yzero(n)存放第n个零点对应的下标
end
yzero =
220 523 852 1146 1488
010
100
Adet=det(A)
%求矩阵的行A列de式t =
Aroots =
Arank=rank(A)
%求矩阵的秩 -82
10.8570
Anorm=norm(A) P=poly(A) Aroots=roots(P)
%求矩阵的范数Ara,nk通= 过带不同的参数可以求不同的-2.范677数6
%求矩阵特征多An项o3rm式=
1

❖两种计算的特点


❖数值计算


❖符号对象和符号表达式


❖符号计算
符 号
❖符号函数的可视化
计 算
❖Maple函数的使用
5.1 两种计算的特点
2
数值计算特点:
1)以数值数组作为运算对象,给出数值解;
2)计算过程中产生误差累积问题,影响计算结果的精确性;
3)计算速度快,占用资源少。
符号计算特点:
本节主要以例题的形式给出一些常用的数值计算问题的MATLAB解算过程,以 便熟悉MATLAB的计算指令。相对于具体的应用环境,需要根据实际情况查阅 MATLAB函数列表,选择合适的函数和参数进行处理。
【例5-1】矩阵常见运算 L =
1.0000 0 0

数值计算与符号运算

数值计算与符号运算

实验名称:数值计算与符号运算一、实验目的与要求:1.掌握MATLAB 数值计算的基本功能,其中主要掌握矩阵的定义、矩阵的代数运算、多项式运算的函数、函数微积分的数值求解及信号处理中傅里叶变换的基本函数应用。

2.掌握MATLAB 中的符号计算的基本功能,其中主要掌握符号表达式的定义、符号矩阵的代数运算、符号方程的求解、符号函数的微积分、信号处理中傅里叶变换的函数以及符号函数的可视化。

二、实验原理、内容和步骤(一)数值计算1.求解线性方程,并进行解的验证。

2.计算以下序列。

3.两个多项式a(x )=5x 4+4x 3+3x 2+2x +1,b(x )=3x 2+1计算c(x )=a(x )*b(x ),并计算c(x )的根。

当x =2时,计算c(x )的值。

4.t 在[0,10]范围内,y(t)=e -2t sin(10t +30o ),计算y 的微分和积分,并用不同的颜色在同一张图上画出y 函数、y 的微分函数及y 的积分函数曲线。

5.t 在[0,10]范围内,对y=e -2t sin(10t +30o )+ e -3t cos(5t ) 进行快速傅立叶变换,并绘制y 的频域曲线图。

(二)符号计算1. 创建符号表达式:f =ax 3+bx 2+cx +d2.计算下列矩阵,并对结果矩阵中的元素进行化简,得到最简形式的矩阵。

3. 使用 “solve”函数,求解下列方程中的x 。

333(1)cos()0,(2)cos()0,(3)cos()0x a x x and x ax +=+=+=, 当a=0.5, 求x 的数值解。

4. 求解以下积分:322(645)ba S x x bx dx=-+-⎰5. 求解微分方程: 初始条件:2)1(,0)1(==x dt d ;2220d x dx x dt dt-+= 6.已知符号表达式12)(sin 12+=-=x g x f ,,计算当x=1时,f 的值;计算f 与g 的复合函数;求g 的逆函数。

符号计算与数值计算的结合方法研究

符号计算与数值计算的结合方法研究

符号计算与数值计算的结合方法研究符号计算与数值计算是计算机科学中两个重要的研究领域。

符号计算主要处理符号表达式,能够精确地求解代数方程、微积分问题等数学问题,是高级数学、科学与工程领域不可缺少的工具。

数值计算主要处理离散数据的计算问题,其应用范围非常广泛,包括科学计算、工业计算等。

符号计算和数值计算都有其独特的优缺点,它们之间的结合方法可以充分发挥它们的优势,解决更加复杂的数学问题。

一、符号计算和数值计算的优缺点符号计算和数值计算有各自的优缺点。

符号计算具有高精度、高可靠性和通用性等优点,它能够对代数方程、微积分问题等数学问题进行完全的符号化处理,获得闭合的解析式。

符号计算的缺点是其处理速度较慢,且对于复杂的数学问题难以进行符号化处理。

数值计算具有处理速度快、适用范围广等优点,其模拟了许多现实世界中的问题,能够提供数字解,而不是解析解。

数值计算的缺点是处理的数据是离散的,其精度始终受到数据离散程度的限制。

二、符号计算和数值计算的结合方法符号计算和数值计算之所以能够结合起来,是因为它们既有各自的优势和特点,又有互补的作用。

在实际应用中,符号计算和数值计算常常配合使用,以在不同场景下获得更好的计算效果。

1. 符号计算和数值计算的计算优化符号计算和数值计算的结合方法可以优化计算过程。

符号计算能够将数学问题转换为更加简洁的表达式,使得计算过程更加高效。

数值计算则能够将符号计算得到的表达式对应转化为算法,使得计算结果更加准确。

符号计算通过化简、代数替换等技术,将原本复杂的数学公式转换为更为简单的形式,从而降低计算难度。

数值计算则通过数值模拟、优化算法等技术,加速计算,提高并行化效率,增强数值计算的可靠性。

2. 符号计算和数值计算的数据在表达上的转换符号计算和数值计算的结合方法可以进行数据在表达上的转换。

符号计算的处理结果是高度抽象、形式上的,包括如多项式代数、超几何显式公式等数学结构,在特定场景下能够提供通用性的形式化解。

MATLAB符号计算

MATLAB符号计算
f ( x) = ax 2 + bx + c 的根
例2: :
2、常微分方程 、 matlab解常微分方程式的函数为: 解常微分方程式的函数为: 解常微分方程式的函数为 dsolve(‘equ’,’condition’); 其中, 代表常微分方程式, 为初始条件, 其中,equ代表常微分方程式,condition为初始条件, 代表常微分方程式 为初始条件 如果初始条件没有给出,则给出通解形式。 如果初始条件没有给出,则给出通解形式。 equ中 用字母D来表示求微分 D的数字表示几 来表示求微分, 注:在equ中,用字母D来表示求微分,D的数字表示几 重微分, 后的变量为因变量 后的变量为因变量。 重微分,D后的变量为因变量。如Dy表示一阶微分项 表示一阶微分项 ,D2y表示二阶微分项 表示二阶微分项 量都是对自变量t求导 求导。 量都是对自变量 求导。 ,并默认所有这些变
3.级数运算 级数运算 可用于级数的函数有: 可用于级数的函数有: (1)symsum(s,v,a,b) 自变量 在[a,b]之间取值时, 自变量v在 之间取值时, 之间取值时 对通项s求和 求和; 对通项 求和; (2)toylor(f,v,n)求f对自变量 的泰勒级数展开 ( 对自变量v的泰勒级数展开 ) 对自变量 至n阶; 阶
例:计算时间函数 f (t ) = e
−t 2
的傅立叶变换
例:计算时间函数 f (t ) = 0.1e − t sin(t −
π
3
) 的拉氏变换。 的拉氏变换。
例:计算时间函数 f (t ) = 0.1e − t sin(t − 结果: 结果:
π
3
) 的拉氏变换。 的拉氏变换。
3.5 方程求解 1、代数方程 、 利用符号表达式解代数方程所需要的函数为solve(f), 利用符号表达式解代数方程所需要的函数为 作用为解符号方程式f; 作用为解符号方程式 例:求一元二次方程
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例1: >> >> >> a(1:2,1:3)=[1 1 1;1 1 1] b=[1 2 3;4 5 6] a(:)=b Matlab基础应用
2.2.2 矩阵删除
(1)单个元素删除:a(i,j)=[]
(2)子矩阵删除:a(i:j,k:l)=[]
(3)所有元素删除:a=[]
例2: >> a=[1 2 3;3 4 5;5 6 7]
(2)符号运算可以得出完全的封闭解或任意精 度的数值解。
(3)符号运算的时间较长,而数值运算速度快。
Matlab基础应用
23
1. 符号表达式的建立
(1)使用sym命令创建


符号变量:sym(‘arg’,’参数’)
符号表达式:sym(‘表达式’)
(2)使用syms命令创建


符号变量:syms arg1 arg2 … 参数
>>roots(f) >> syms a b c x; >> f=a*x^2+b*x+c; >> solve(f)
※ 数值运算中必须先对变量赋值 ※ 符号运算无须事先对变量赋值,运算 结果以标准的符号形式表达
Matlab基础应用
22
符号运算与数值运算的区别
(1)每一次数值运算有一定的截断误差,重复 的多次数值运算就可能会造成很大的积累 误差。
可用polyval函数,计算多项式在变量
为特定值的结果。
例3:计算x=0:0.5:3时,p(x)=x3+21x2+20x值。
解: >>p1=[1 21 20 0]; >>x=0:0.5:3; >>M=polyval(p1,x);
>>M=[15.375 42 80.625 132 196.875 276]
Matlab基础应用 25
2.符号运算
2.1 符号运算中的运算符
(1)基本运算符
符号矩阵:‚+”,‚-”,‚*‛,‚\”,‚/”,‚^”
‚ ’ ” 符号数组(矩阵元素):‚.*”,‚./”,‚.\‛, ‚.^” (2)关系运算符 运算符‚==”,‚~=”。
Matlab基础应用 26
2.2 符号运算中的函数运算
矩阵元素 算术运算( +,-,.*,./,.\,.^ )、其它函数(超越函数) (数组) 多项式 表示方法、求值(polyval)、求根(roots)、相乘(conv)、 相除(deconv)、微分(polyer)、积分
函数
微分/差分(diff)、积分(cumsum、trapz、cumtrapz)
信号处理 傅立叶变换(fft) 专用函数 傅立叶逆变换(ifft)

2 j ( n 1)( k 1) 1 N x( k )ifft:一维快速傅立叶逆变换。 N 1 x( n)e N k 1,.... N n 1 语法: x=ifft(X,N)
Matlab基础应用
19
内容归纳
项目
矩阵
内容
定义、生成、下标、赋值、修改、删除、算术运算(+,,*,/,\,^(与标量运算也一样))、其它运算
fft:一维快速傅立叶变换。 语法:X=fft(x,N) 说明:x可是向量、矩阵和多维数组;N为输入变量x的序列 离散序列傅立叶变换定义为:
长度,可省略,如果x的长度小于N,会自动补零;如 2 N j ( n 1)( k 1) x( n果x的长度大于N,会自动截断;当N取2的整数幂时, ) x( k )e N n 1,.... N 1 k 1 傅立叶变换的计算速度最快。通常取大于又最靠近x 长度的幂次。 离散序列傅立叶逆变换定义为:
Matlab基础应用 12
4.多项式运算
4.1 多项式的表示
MATLAB语言把多项式表达成一个行量,该向 量中的元素是按多项式降幂排列的。
f(x)=anxn+an-1xn-1+……+a0
用行向量 p=[an, an-1 ,…… a1, a0]表示。
Matlab基础应用
13
4.2 多项式求值
Matlab基础应用
ans = x^3 + 21 x^2 + 20 x
5 差分(微分)与积分
函数名 功能 沿第n维求第m阶差分。差分是 求相邻行(列)之间的差,结果 会减少一行(列)(微分)
例子:a = 5.3000 5.1000 3.7000 1.5000
输入
13.0000 11.8000 8.1000 7.7000
使矩阵X沿垂直轴左右翻转
fliplr(a)
rot90(X)
使矩阵X逆时针旋转900
rot90(a)
Matlab基础应用
8
3.矩阵运算
3.1矩阵的代数运算
矩阵的代数操作:+,-,*,
\(左除),/(右除) ,.\
对应元素的操作:+,-,.*,./ 矩阵的代数乘方:^ 矩阵元素的乘方:.^
Matlab基础应用
符号表达式:利用上面定义的符号变量,直接定义。 例:>>syms a b c x
>>f=a*x^2+b*x+c
注意: (1)由sym命令创建符号表达式或者符号方程时,必须用 单引号引起来MATLAB才能识别。 (2)符号变量和符号表达式在使用前必须说明。
Matlab基础应用 24
例: >>sym(‘ f ’,’real’) >>syms a x 或sym(‘a’,’x’) >> f2=a*sin(x) >> whos Name Size Bytes Class a 1x1 126 sym object f2 1x1 146 sym object x 1x1 126 sym object
Matlab基础应用
14
4.3 多项式求根
在MATLAB利用函数:roots
例2:p(x)=x3-6x2-72x-27
Now Begin:
在MATLAB command window 中演示。
Matlab基础应用
15
4.4 多项式乘除运算
4.4.1 多项式的乘法
语法:p=conv(p1,p2)
说明:p是多项式p1和p2的乘积多项式。
4.4.2 多项式的除法
语法:[q,r]=deconv(p1,p2)
Hale Waihona Puke 说明:p1被p2除,商为多项式q,余数式为r。
Matlab基础应用
16
4.5 多项式微分与积分
多项式微分:由polyer函数实现
语法:polyder(p) 说明:求多项式p的微分。
triu(a) 1 0 0 1 3 5 5 3 1 0 0 9 0 2 1
结果
2 4 0 0 4 6 6 4 2 2 4 6 0 4 3 0 0 9 0 0 9 9 0 0 1 3 5 9 6 5
tril(X)
tril(a)
flipud(X)
使矩阵X沿水平轴上下翻转
flipud(a)
fliplr(X)
-2.1000 2.3000 -5.1000 18.7000 15.2000 12.4000 4.7000 -3.1500
cumsum(X,n)
沿第n维求累计和(积分)
cumsum(a,2) %沿 列求累计和
trapz(X,y)
梯形法求积分近似于求元素和 ,把相邻两点数据的平均值乘 以步长表示面积。x为自变量, y为函数。 用梯形法沿第n维求函数y对自 变量x累计积分。
—— 产生均匀分布随机矩阵;
—— 单位矩阵; ——全部元素都为1的矩阵;
zeros ——全部元素都为0的矩阵; magic ——产生魔方阵。
Matlab基础应用 5
2. 矩阵元素的操作
2.1 矩阵元素的引用
(1)全下标表示方式:即a(i,j); (2)单下标表示方式:即a(s),按列排列,
20
Matlab基础应用
二、符号计算
符号表达式创建
符号运算
符号表达式的操作 符号方程求解 符号微积分 符号积分变换 符号函数的可视化
Matlab基础应用 21
内容导入
求解函数f= ax2+bx+c的根
如果a=1,b=2,c=1,则: 如果a,b,c不给出具 体值怎样求解呢? >>f = [1 2 1];
a=linspace(1,10,5);
线性对数等分向量:logspace命令
b=logspace(0,2,10)
矩阵连接
c=[a b];
Matlab基础应用 4
1.3 用函数创建矩阵
空阵[]——MATLAB允许输入空阵,当操作无结果 时,返回空阵;
rand
eye ones
s=(j-1)×m+i,矩阵a为m×n
1 1 2 1 3 2 2 4 3 0 0
a(1,2) a(4)
3
5
6
9
Matlab基础应用
6
2.2 矩阵的赋值和删除
2.2.1 矩阵赋值
(1)全下标方式:a(i,j)=b (2)单下标方式:a(s)=b (3)全元素方式:a(:)=b (4)整行列方式:a(:,j)=b 或a(i,:)=b
MATLAB中没有专门的多项式积分函数, 例: 可用[p./length(p):-1:1,k]方法实现积分,其
>>p=[3 42 20]; 中k为常数。 >>s=length(p):-1:1
s = 3 2
21
1
相关文档
最新文档