第二章 MATLAB的数值计算
Matlab 科学计算

>>x1=[0.5 :0.05 :3.0]; >>y1=a(1)*x1.^2+a(2)*x1+a(3); >>plot(x,y,’*’) >>hold on >>plot(x1,y1,’-r’)
19
计算方法中的求积公式
• 微积分是理工科大学生踏入大学校门后首 先要接触到的一门重要基础课程。 • 实践证明,微积分运算也是实际工作中广 泛应用的基本工具,它是科学计算最重要 的组成部分
பைடு நூலகம்
26
trapz实例
• Z = TRAPZ(X,Y,DIM) or TRAPZ(Y,DIM) integrates across dimension DIM of Y. • Example: If Y = [0 1 2 • 3 4 5] • then trapz(Y,1) is [1.5 2.5 3.5] and trapz(Y,2) is [2 8];
10
分段线性插值法
• 高次插值多项式可能产生极大的误差(这 一现象称为荣格(Runge)现象)因此不 宜用太多的点来做插值多项式。 • 为了解决荣格现象,引入了分段线性插值, 即通过n+1个插值点用折线段连接起来逼 近原曲线,这也是计算机绘制图形的基本 原理。
11
荣格(Runge)现象
x=[-5:1:5]; y=1./(1+x.^2); x0=[-5:0.1:5]; y0=lagrange(x,y,x0); y1=1./(1+x0.^2); plot(x0,y0,'--r'); hold on plot(x0,y1,'-b');
9
Lagrange插值法
(完整word版)含答案《MATLAB实用教程》

第二章 MATLAB 语言及应用实验项目实验一 MATLAB 数值计算三、实验内容与步骤1.创建矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a(1(2)用(3)用(42.矩阵的运算(1)利用矩阵除法解线性方程组。
⎪⎪⎩⎪⎪⎨⎧=+++=-+-=+++=+-12224732258232432143214321421x x x x x x x x x x x x x x x 将方程表示为AX=B ,计算X=A\B 。
(2)利用矩阵的基本运算求解矩阵方程。
已知矩阵A 和B 满足关系式A -1BA=6A+BA ,计算矩阵B 。
其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=7/10004/10003/1A ,Ps: format rata=[1/3 0 0;0 1/4 0;0 0 1/7];b=inv(a)*inv(inv(a)-eye(3))*6*a(3)计算矩阵的特征值和特征向量。
已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=1104152021X ,计算其特征值和特征向量。
(4)Page:322利用数学函数进行矩阵运算。
已知传递函数G(s)=1/(2s+1),计算幅频特性Lw=-20lg(1)2(2w )和相频特性Fw=-arctan(2w),w 的范围为[0.01,10],按对数均匀分布。
3.多项式的运算(1)多项式的运算。
已知表达式G(x)=(x-4)(x+5)(x 2-6x+9),展开多项式形式,并计算当x 在[0,20]内变化时G(x)的值,计算出G(x)=0的根。
Page 324(2)多项式的拟合与插值。
将多项式G(x)=x 4-5x 3-17x 2+129x-180,当x 在[0,20]多项式的值上下加上随机数的偏差构成y1,对y1进行拟合。
对G(x)和y1分别进行插值,计算在5.5处的值。
Page 325 四、思考练习题1.使用logspace 函数创建0~4π的行向量,有20个元素,查看其元素分布情况。
Ps: logspace(log10(0),log10(4*pi),20) (2) sort(c,2) %顺序排列 3.1多项式1)f(x)=2x 2+3x+5x+8用向量表示该多项式,并计算f(10)值. 2)根据多项式的根[-0.5 -3+4i -3-4i]创建多项式。
数值计算与MATLAB第二章

第二章非线性方程求根习题2-11. 试寻找f(x)= x 3+6.6 x2-29.05 x +22.64=0的实根上下界,及正根所在的区间,区间长度取1。
解:由笛卡儿符号规则知,f(x)=0可能有二个正根或无正根f(-x)= -x 3+6.6 x2+29.05 x +22.64=0即x 3 -6.6 x2-29.05 x -22.64=0f(-x)=0有一个正根,因此,f(x)=0有一个负根。
由定理2-3,f(x)=0的正根上界f(x)=0的负根下界x0123456 6.39f(x)++-+++++正根所在区间为(1, 2),(2, 3)。
2.你能不利用多项式的求导公式,而借鉴于余数定理的思想,构造出P n(x)=a0x n+a1x n-1+...+a n-1x+a n在x0这点上的导数值的算法吗?习题2-21.用二分法求方程x2-x-1=0的正根,要求准确到小数点后第一位a F(a)b F(b)x F(x)0-1211-11-121 1.5-0.251.5-0.2521 1.750.31251.5-0.25 1.750.3125 1.6250.3015625 1.5-0.25 1.6250.015625 1.5625-0.12109375 1.5625-0.12104375 1.6250.015625 1.59375-0.053710937 1.59375-0.053710937 1.6250.015625 1.609375-0.019287109 1.609375-0.019287109 1.6250.015625 1.6171875-0.001892089 1.6171875-0.001892089 1.6250.015625 1.621093750.006851196 1.6171875-0.001892089 1.621093750.006851196 1.6191406250.002175738 1.6171875-0.001892089 1.619140620.002475738 1.6181640630.000290904X*=1.618K=5X*=1.593752.试证明用试位法(比例求根法),求在区间[0, 1]内的一个根必然收敛。
第二章matlab02数值运算功能2

2.4.3矩阵的关系和逻辑运算 矩阵的关系和逻辑运算
1.矩阵的关系运算符:<, >, <=, >=, = =, ~= 矩阵的关系运算符: 矩阵的关系运算符 • 矩阵之间的每个元素进行比较,运算结果 矩阵之间的每个元素进行比较, 为与原矩阵大小一样的由0 为与原矩阵大小一样的由0和1组成的矩阵 注意:1=<a<=2错误 注意: 错误 例: 1<=a<=2正确 = 正确
• •
§2.4 矩阵的运算
矩阵的数学运算 矩阵的点(数组 运算 矩阵的点 数组)运算 数组 矩阵的关系和逻辑运算
2.4.1矩阵的数学运算 矩阵的数学运算
矩阵运算符 含义 A’ 矩阵转置 A+B 矩阵相加 A-B 矩阵相减 A*B 矩阵相乘 A/B 矩阵相除(右除) 矩阵相除(右除) B\A 矩阵相除(左除) 矩阵相除(左除) A^n A阵的 n次幂 阵的 次幂
x X = y z
10 B = 5 −1
要解上述的联立方程式, 要解上述的联立方程式,可利用矩阵左除 \ 做运 时要求A、 的行数相等 相等。 算,即:X=A\B, 左除时要求 、B的行数相等。 , 左除时要求
如果将原方程式改写成 X*A=B,且令 X, A 和 B , 分别为
MATLAB数值计算教程

MATLAB数值计算教程第一章:MATLAB入门1.1 MATLAB简介MATLAB(Matrix Laboratory)是一款强大的数值计算软件,广泛用于工程、科学和金融领域。
它的特点是简单易用、高效快速,并且拥有丰富的工具箱和函数库。
1.2 MATLAB环境搭建要使用MATLAB进行数值计算,首先需要安装MATLAB软件,并进行必要的配置。
通过官方网站下载安装程序,根据提示进行安装即可。
安装完成后,打开MATLAB环境,即可开始使用。
1.3 MATLAB基本操作在MATLAB环境中,可以通过命令行窗口输入和执行命令,也可以使用脚本文件进行批量处理。
常用的基本操作包括变量赋值、算术运算、函数调用等。
例如,使用"="符号赋值变量,使用"+"、"-"、"*"、"/"等符号进行算术运算。
第二章:向量和矩阵操作2.1 向量操作在MATLAB中,向量是一种特殊的矩阵,可以通过一组有序的元素构成。
向量可以进行基本的算术运算,如加法、减法、乘法、除法,还可以进行向量的点积、叉积等操作。
可以使用内置函数和运算符来实现。
2.2 矩阵操作矩阵是MATLAB中最常用的数据结构之一,使用矩阵可以进行多个向量的组合和运算。
可以进行矩阵的加法、减法、乘法、除法等操作,也可以进行矩阵的转置、求逆、求特征值等操作。
MATLAB提供了大量的函数和工具箱来支持矩阵的操作。
第三章:数值计算方法3.1 数值积分数值积分是一种用数值方法计算定积分的方法。
在MATLAB 中,可以使用内置函数来进行数值积分,如trapz函数和quad函数。
也可以使用Simpson法则、复合辛普森法等方法实现数值积分。
3.2 数值微分数值微分是一种用数值方法计算导数的方法。
在MATLAB中,可以使用内置函数进行数值微分,如diff函数和gradient函数。
第二章 MATLAB的数值计算(修改版)

2.2.3 矩阵的基本运算
矩阵的乘(*)运算
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。 例如: a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b c =14 32 23
2.2.3 矩阵的基本运算
矩阵的除运算 矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种 矩阵除运算即左除和右除 左除‚\”: 相当于Ax=B的解,x=A-1B。 右除‚/”:相当于xA=B的解,x=BA-1 此外,矩阵也可和常数进行除运算,此时常数只能作为除数
方法二 冒号生成 基本格式:x=x1:step:x2 x=x1:x2 比如: D = 4:0.5:9 E = 5:9
2.1.3 向量的运算
与数的运算 比如: A = 0:9; B = A-1 C = A*2 点积运算 指两个向量在其中一个向量方向上的投影的乘积。 dot(a,b) a,b必须同维 比如: A = 0:3; B = 1:4; C = dot(A,B)
注意:MATLAB函数名必须小写
2.2.2 矩阵的修改
方法一:直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即 可修改。 方法二: 指令修改 可以用A(,)= 来修改。 比如: 对于A=[1 2 3;4 9 6;7 8 9],若将其中的9修改为5,则可以通过上述的两 种方法: 法一不用介绍; 方法二可使用A(2,2)=5来修改
特征多项式的特点:
(1)特征多项式一定是n+1维的 (2)特征多项式第一个元素一定是1
根据多项式对应的全部根可建立其特征多项式: poly —— 产生特征多项式系数向量
已知一个多项式的全部根X求多项式系数的函数是poly(X),该函数返回以X为 全部根的一个多项式P,当X是一个长度为m的向量时,P是一个长度为m+1的 向量。
第 2 章 matlab数值计算第一次课

河南理工大学测绘学院
§2.1 特殊矩阵的生成
eye函数的调用格式: ●eye(n) %生成n × n阶单位矩阵 ● eye(m,n) 或eye([m,n]) %生成m× n阶单位阵 ● eye(size(A)) %生成与A同阶的单位阵 ones函数的调用格式: ●ones(m):产生m × m阶的全1矩阵。 ●ones(m,n)或zeros([m,n]) :产生m × n全1矩阵。当 m = n时,等同于zeros(m)。 ● zeros(m,n,p,…): 生成m × n ×p ×…阶的全1阵或 数组。
MATLAB提供了求魔方矩阵的函数magic(n),其
功能是生成一个n阶魔方阵。
河南理工大学测绘学院
§2.1 特殊矩阵的生成
【例2.3】将101~125等25个数填入一个5行5列的表格中, 使其每行、每列及对角线的和均为565。
一个5阶魔方矩阵的每行、每列及对角线的和均为65, 对其每个元素都加100后这些和变为565。完成其功能的命 令如下: M=100+magic(5)
rand(‘state’,J) %对整数J,重置生成器到第J个状态 rand(‘state’,sum(100*lock))%每次重置到不同状态 注:randn函数的调用格式同rand
河南理工大学测绘学院
§2.1 特殊矩阵的生成
【例2.2】建立随机矩阵: (1)在区间[10, 30]内均匀分布的4阶随机矩阵。 (2)均值为0.6、方差为0.1的4阶正态分布随机矩阵。 产生(0,1)区间均匀分布随机矩阵使用rand函数,假 设得到了一组满足(0,1)区间均匀分布的随机数xi,则 若想得到在任意[a, b]区间上均匀分布的随机数,只需 用yi = a + (b − a)xi计算即可。产生均值为0、方差 为1的标准正态分布随机矩阵使用randn函数,假设已经 得到了一组标准正态分布随机数xi,如果想更一般地得 到均值为μ 、方差为σ 2的随机数,可yi = μ + σ xi 计算出来。
第2章 MATLAB数值计算

第2章 MATLAB数值计算MATLAB的数学计算=数值计算+符号计算其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。
2.1 变量和数据2.1.1数据类型数据类型包括:数值型、字符串型、元胞型、结构型等数值型=双精度型、单精度型和整数类整数类=无符号类(uint8、uint16、uint32、uint64)和符号类整数(int8、int16、int32、int64)。
2.1.2数据1. 数据的表达方式▪可以用带小数点的形式直接表示▪用科学计数法▪数值的表示范围是10-309~10309。
以下都是合法的数据表示:-2、5.67、2.56e-56(表示2.56×10-56)、4.68e204(表示4.68×10204)2. 矩阵和数组的概念在MATLAB的运算中,经常要使用标量、向量、矩阵和数组,这几个名称的定义如下:▪标量:是指1×1的矩阵,即为只含一个数的矩阵。
▪向量:是指1×n或n×1的矩阵,即只有一行或者一列的矩阵。
▪矩阵:是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,0×0矩阵为空矩阵([])。
▪数组:是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。
3. 复数复数由实部和虚部组成,MATLAB用特殊变量“i”和“j”表示虚数的单位。
复数运算不需要特殊处理,可以直接进行。
复数可以有几种表示:z=a+b*i或z=a+b*jz=a+bi 或z=a+bj(当b 为标量时) z=r*exp(i*theta)● 得出一个复数的实部、虚部、幅值和相角。
a=real(z) %计算实部 b=imag(z) %计算虚部 r=abs(z) %计算幅值 theta=angle(z) %计算相角 说明:复数z 的实部a=r*cos(θ); 复数z 的虚部b=r*sin(θ); 复数z 的幅值22b a r +=;复数z 的相角theta=arctg(b/a),以弧度为单位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
》length(a) ans = 3 》max(size(a)) ans = 3
》rank(a) ans = 2
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵,当一 项操作无结果时,返回空阵。 单位矩阵:eye(m,n); eye(m) 零矩阵:zeros(m,n); zeros(m) 一矩阵:ones(m,n); ones(m) 对角矩阵:对角元素向量 V=[a1,a2,…,an] A=diag(V) 随机矩阵:rand(m,n)产生一个m×n的均 匀分别的随机矩阵
逆矩阵与行列式计算 求逆:inv(A); 求行列式:det(A) 要求矩阵必须为方阵
》a=[1 2 3; 4 5 6; 2 3 5]; 》b=inv(a) b=
-2.3333 0.3333 1.0000
2.6667 0.3333 -2.0000 -0.6667 -0.3333 1.0000
》det(a)
可用行向量 p=[an an-1 …… a1 +a0]表示
1. poly —— 产生特征多项式系数向量
特征多项式一定是n+1维的 特征多项式第一个元素一定是1
(1)多项式的建立与表示方法
在MATLAB中,多项式使用降幂系数的行向量表示, 如:多项式 x 4 12x 3 0 x 2 25x 116
注意:只要是赋过值的变量,不管是
否在屏幕上显示过,都存储在工作空
间中,以后可随时显示或调用。变量
名尽可能不要重复,否则会覆盖 。
当一个指令或矩阵太长时,可用••• 续行
冒号的作用
用于生成等间隔的向量,默认
间隔为1。
用于选出矩阵指定行、列及元 素。
循环语句
语句生成
(1)用线性等间距生成向量矩 阵(start:step:end)
矩阵下标 MATLAB通过确认矩阵下标,可以对矩阵进行插 入子块,提取子块和重排子块的操作。 A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A(m,:):提取第m行元素 A(m1:m2,n1:n2):提取第m1行到第m2行和第 n1列到第n2列的所有元素(提取子块)。 A(:):得到一个长列矢量,该矢量的元素按矩 阵的列进行排列。 矩阵扩展:如果在原矩阵中一个不存在的地址 位置上设定一个数(赋值),则该矩阵会自动 扩展行列数,并在该位置上添加这个数,而且 在其他没有指定的位置补零。 消除子块:如果将矩阵的子块赋值为空矩阵[ ], 则相当于消除了相应的矩阵子块。
3. 数组乘方(.^) — 元素对元素的幂
例: a=[1 2 3];b=[4 5 6]; z=a.^2 z= 1.00 4.00 z=a.^b z= 1.00 32.00
9.00
729.00
四、 多项式运算
matlab语言把多项式表达成一个行向量, 该向量中的元素是按多项式降幂排 列的。
f(x)=anxn+an-1xn-1+……+a0
46 109 172
a./b=b.\a —— 给出a,b对应元素间的商. a.\b=b./a a./b=b.\a — 都是a的元素被b的对应元 素除 a.\b=b./a — 都是b的元素被a的对应元 素除
例: a=[1 2 3];b=[4 5 6];c1=a.\b;c2=b./a c1 = 4.0000 2.5000 2.0000 c2 = 4.0000 2.5000 2.0000
多项式p(x)=x3-6x2-72x-27的matlab描 述方法,我们可用: p1=poly2str(p,‘x’) — 函数文件,显示 数学多项式的形式 p1 =x^3 - 6 x^2 - 72 x - 27
(2)多项式的运算 •相乘conv a=[1 2 3] ; b=[1 2] c=conv(a,b)=1 4 7 6 conv指令可以嵌套使用,如conv(conv(a,b),c) •相除deconv [q,r]=deconv(c,b) q=1 2 3 %商多项式 r=0 0 0 %余多项式 •求多项式的微分多项式polyder polyder(a)=2 2 •求多项式函数值polyval(p,n):将值n代入多项式 求解。polyval(a,2)=11
102 126 150
※当一个方阵有复数特征值或负实 特征值时,非整数幂是复数阵。
a^0.5
ans =
0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i
矩阵的大小 [m,n]=size(A,x):返回矩阵的行列数m与 n,当x=1,则只返回行数m,当x=2,则 只返回列数n。 length(A)=max(size(A)):返回行数或列 数的最大值。 rank(A):求矩阵的秩
》a=[1 2 3;3 4 5]; 》[m,n]=size(a) m= 2 n= 3
表示为:p=[1 -12 0 25 116],使用函数roots可以求 出多项式等于0的根,根用列向量表示。若已知多项 式等于0的根,函数poly可以求出相应多项式。 r=roots(p) r= 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i p=poly(r) p= 1 -12 -0 25 116
关系运算
关系符号
< <= > >= == ~=
意义
小于 小于或等于 大于 大于或等于 等于 不等于
5. 矩阵的数组运算
数组运算指元素对元素的算术运算, 与通常意义上的由符号表示的线性
代数矩阵运算不同
1.
数组加减(.+,.-)
a.+b
对应元素相加减(与矩阵加 a.- b 减等效)
2. 数组乘除(,./,.\) ab —— a,b两数组必须有相同的行 和列两数组相应元素相乘。
>> a=[1 2 3;4 5 6;7 8 9]
>> a(:)
>> a(4,1)=10
a=
1 4 7 2 5 8 3 6 9
ans =
1 4 7 2 5 8 3 6 9
a=
1 4 7 10 2 5 8 0 3 6 9 0
>> a(2:3,1:2) ans = 4 7 5 8
>> a(2,:)=[ ] a= 1 2 3 7 8 9 10 0 0
》a=[1:2:10] a= 1 3 5 7 9
语句生成
(2)a=linspace(n1,n2,n) 在线性空间上,行矢量的值从n1到n2,数 据个数为n,缺省n为100。 》a=linspace(1,10,10) a= 1 2 3 4 5 6 7 8 space(n1,n2,n) 在对数空间上,行矢量的值从10n1到10n2, 数据个数为n,缺省n为50。这个指令为 建立对数频域轴坐标提供了方便。 》a=logspace(1,3,3) a= 10 100 1000
》a=[1 2 3;4 5 6]' a= 1 2 3 4 5 6 》a=[1 2 3;4 5 6].' a= 1 2 3 4 5 6 b= 1.0000 - 2.0000i 2.0000 + 7.0000i 》b=[1+2i 2-7i].' b= 1.0000 + 2.0000i
4. 矩阵的其它运算
2.用matlab函数创建矩阵
》eye(2,3) ans= 100 010 》zeros(2,3) ans= 000 000 》ones(2,3) ans= 111 111 》V=[5 7 2]; A=diag(V) A= 500 070 002 》eye(2) ans= 10 01 》zeros(2) ans= 00 00 》ones(2) ans= 11 11
种矩阵除运算
3. 矩阵乘方—— a^n,a^p,p^a
a ^ p —— a 自乘p次幂
方阵 >1的整数
对于p的其它值,计算将涉及特征值 和特征向量,如果p是矩阵,a是标量 a^p使用特征值和特征向量自乘到p次
幂;如a,p都是矩阵,a^p则无意义。
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 66 36 81 42 96
4. 矩阵的其它运算
inv —— 矩阵求逆
det —— 行列式的值
eig —— 矩阵的特征值
diag —— 对角矩阵
’ —— 矩阵转置
sqrt —— 矩阵开方
4. 矩阵的其它运算
转置:对于实矩阵用(’)符号或(.’)求 转置结果是一样的;然而对于含复数的 矩阵,则(’)将同时对复数进行共轭 处理,而 (.’)则只是将其排列形式进行 转置。 》b=[1+2i 2-7i]'
第二讲 MATLAB的数值计算
—— matlab 具有出色的数值计 算能力,占据世界上数值计算软 件的主导地位
数值运算的功能
创建矩阵 矩阵运算 多项式运算 线性方程组 数值统计 线性插值 函数优化 微分方程的数值解
一、命令行的基本操作
1. 创建矩阵的方法
直接输入法 规则: 矩阵元素必须用[ ]括住 矩阵元素必须用逗号或空格分隔 在[ ]内矩阵的行与行之间必须 用分号分隔
例如 a=[1 2 0;3 0 5;7 8 9] a =1 2 0 3 0 5 7 8 9 a(3,3)=0 a =1 2 0 3 0 5 7 8 0
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。 默认文件名