第2章 matlab数值计算功能
第2章 MATLAB数据及其运算

③也可以采用矩阵元素的序号来引用矩阵元素。矩 阵元素按列编号,先第一列,再第二列,依次类 推。 显然,下标(subscrip)与序号(index)是一一对 应的。以m×n矩阵A为例,矩阵元素A(i,j)的序 号为 (j-1)*m+i。其相互转换关系也可利用 sub2ind和ind2sub函数求得 sub2ind(size(A),2,3) %已知行列,求序号 [c,d]=ind2sub(size(A),6) %已知序号,求行 列 还可利用reshape(A,m,n)在矩阵总元素不变的前 提下,将矩阵重排
2、赋值语句
(1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如果在语句的最 后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运 算的结果。 在MATLAB语句后面可以加上注释,注释以%开头,后面 是注释的内容。 例2.1 计算表达式的值,并将结果赋给变量x,然后显示 出结果。 在MATLAB命令窗口输入命令:
linspace(a,b,n)与a:(b-a)/(n-1):b等价。
logspace函数生成从10a到10b之间按对数等分的 n个元素的行向量,n如果省略则默认值为50。
21
2.3.3 矩阵的拆分
1. 矩阵元素
①MATLAB允许用户对一个矩阵的单个元素进行赋 值和操作。例如: A=ones(4);A(3,2)=200 只改变该元素的值,而不影响其他元素的值。 ② 如果给出的行下标或列下标大于原来矩阵的行数 和列数,则MATLAB将自动扩展原来的矩阵,并将 扩展后未赋值得矩阵元素置为0。例如: A(5,6)=10
10
2.2.3 数据的输出格式
MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 在命令窗口中,默认情况下当数值为整数时, 数值计算的结果以整数显示;当数值为实数 时,以小数点后四位的精度近似显示,即以 短(short)格式显示;如果数值超过这一范 围,则以科学计数法显示结果。
第二讲道客巴巴MATLAB的数值计算

例 在区间[20,50]内均匀分布的5阶随机 矩阵。
命令如下:
x=20+(50-20)*rand(5) 此外,常用的函数还有reshape(A,m,n), 它在矩阵总元素保持不变的前提下,将 矩阵A重新排成m×n的二维矩阵。
也可用linspace函数产生行向量。其调用 格式为: linspace(a, b, n) 其中a和b是生成向量的第一个和最后一 个元素,n是元素总数。 例 》a=linspace(1 , 10 , 10)
当一个指令或矩阵太长时,可用••• 续行
冒号的作用 用于生成等间隔的向量,默认 间隔为1。 用于选出矩阵指定行、列及元 素。 循环语句
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵,当一 项操作无结果时,返回空阵。 rand —— 随机矩阵 eye —— 单位矩阵 zeros ——全部元素都为0的矩阵 ones ——全部元素都为1的矩阵 diag ——产生对角矩阵
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 36 42
66 81 96 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
3.conv多项式乘运算(向量卷积)
例:a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=[1 2 3];b=[4 5 6]; c=conv(a,b)或c=conv([1 2 3],[4 5 6]) c = 4.00 13.00 28.00 27.00 18.00 p=poly2str(c,‘x’) 其中x表示自变量 p = 4 x^4 + 13 x^3 + 28 x^2 + 27 x + 18
MATLAB数值计算功能

MATLAB数值计算功能下面将详细介绍MATLAB数值计算功能的一些主要方面:1. 矩阵运算和线性代数:MATLAB具有强大的矩阵操作功能,可以直接对矩阵进行加减乘除、求逆矩阵、求特征值等运算。
MATLAB中的线性方程组求解函数(如`linsolve`和`inv`)可以更轻松地解决各种线性代数问题。
2. 数值积分和微分:MATLAB提供了多种数值积分和微分函数,用于求解一元和多元函数的定积分、不定积分、数值微分和数值求导。
例如,可以使用`integral`函数计算函数的定积分,并使用`diff`函数计算函数的导数或`gradient`函数计算梯度。
3. 方程求解:MATLAB提供了一系列函数,用于解决非线性方程和代数方程组。
这些函数包括`fsolve`(用于求解非线性方程),`roots`(用于求解多项式方程的根)和`solve`(用于求解代数方程组)等。
4. 曲线拟合和数据拟合:MATLAB提供了多个函数用于曲线拟合和数据拟合,包括`polyfit`(多项式拟合),`lsqcurvefit`(非线性最小二乘曲线拟合),`interp1`(一维插值)和`griddata`(多维数据插值)等。
这些函数可以帮助用户找到数据之间的模式和关系。
5. 常微分方程(ODE)求解:MATLAB提供了用于求解常微分方程组(ODE)的函数,既可以用传统的数值方法求解,也可以用符号计算求解。
用户可以使用`ode45`、`ode23`或`ode15s`等函数来求解初值问题或边界值问题。
6. 线性最小二乘拟合:MATLAB中的`lsqnonlin`函数可以用于线性最小二乘问题的求解,包括曲线拟合、数据拟合、参数估计等。
用户可以使用该函数来找到使得拟合曲线和观测数据之间残差最小的参数。
7. 数值优化:MATLAB包含一系列优化函数,可以求解常规优化问题、无约束优化问题、约束优化问题等。
用户可以使用函数`fminsearch`、`fminunc`和`fmincon`等来找到函数的最小值或最大值。
MATLAB数值计算功能

MATLAB数值计算功能
MATLAB是一种非常强大的数值计算软件,被广泛应用于科学计算、
工程计算和数据分析等领域。
它提供了丰富的数值计算功能,包括基本的
数学运算、线性代数、数值积分、微分方程求解、优化算法等。
下面将详
细介绍一些常见的数值计算功能。
1.数学运算:
MATLAB提供了丰富的数学函数,可以进行各种基本的算术运算,如
加减乘除、幂运算、取模运算等。
同时,它还提供了一些高级的数学函数,如三角函数、指数函数、对数函数等。
通过这些函数,用户可以进行各种
复杂的数学运算。
2.线性代数:
3.数值积分:
4.微分方程求解:
5.优化算法:
MATLAB提供了各种优化算法,如线性规划、非线性规划、整数规划、二次规划等。
用户可以通过设定目标函数和约束条件,利用MATLAB的优
化函数寻找最佳的解。
这对于优化问题的求解非常有用,如工程设计、生
产调度等。
6.统计分析:
7.数据可视化:
总之,MATLAB的数值计算功能非常丰富,可以满足各种数学计算和数据分析的需求。
它不仅提供了各种基本的数学运算功能,还提供了高级的线性代数、数值积分、微分方程求解、优化算法和统计分析等功能。
同时,其强大的数据可视化功能也是很多用户选择MATLAB作为数值计算工具的重要原因之一。
matlab第2章

2. MATLAB变量的显示
任何MATLAB语句的执行结果都可以在屏幕上显示,同时赋值
给指定的变量。没有指定变量பைடு நூலகம்,赋值给默认变量名ans,数据
的显示格式由format命令控制。
Format只影响结果的显示,不影响计算与存储。
MATLAB以双字长浮点数(双精度)执行所有的运算。
22
2.4.1.2 字符串
a在前面未赋值时,非法命令。
19
1. 变量命名规则 (1)变量名区分字母的大小写,A与a表示不同的变量。 (2)变量名必须以英文字母开头,之后可以使用字母、数字、下画线, 但不能使用空格和标点符号。 (3)变量名长度不能超过31个字符,超过部分将被忽略
(4)某些常量也可以作为变量使用。
如 i 在MATLAB中表示虚数单位,但也可以作为变量使用。
5
3.Debug主菜单项 (1)Open M-Files when Debugging:调试时打开M文件 (2)Step:单步调试程序
(3)Step In:单步调试进入子程序
(4)Step Out:单步调试从子程序跳出 (5)Continue:程序执行到下一断点 (6)Clear Breakpoints in All Files:清除所有打开文件中的断点 (7)Stop if Errors/Warnings:在程序出错或报警处停止往下执行
8
5.Window主菜单项 (1)Close All documents:关闭所有文档 (2)0 Command Window:选定命令窗口为当前活动窗口 (3)1 Command History:选定历史命令窗口为当前活动窗口 (4)2 Current Directory:选定当前路径窗口为当前活动窗口
数值计算与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]内的一个根必然收敛。
第2章 MATLAB的基础知识

a=[1 2 1;2 2 1;2 1 2]; b=[1;2;3]; a/b %矩阵右除
运行程序,得到结果:
??? Error using ==> mrdivide Matrix dimensions must agree.
重新输入语句
a\b
%矩阵左除 ans = 1.0000 -0.3333 0.6667
运行程序,得到结果:
c= 0 0 1 1 1 0
说明 对于复数运算,“= =”与“~ =”运算,既比较实部, 又比较虚部。而其他运算仅比较实部。关系运算同样也可用于 常量与矩阵的比较,在这种情况下,该常量与矩阵的每一个元 素进行比较,其结果是一个与矩阵同维数的0、1矩阵。
逻辑操作符
逻辑操作符 说 明 相对应函数
-0.1667 0 0
(3)矩阵特征值运算
矩阵条件数cond( ) 矩阵的秩rank() 矩阵特征值eig ( )
矩阵范数norm( ) 矩阵的迹trace ( ) 矩阵奇异值svd ( )
例2-7 分别计算矩阵a的有关特征参数。输入以下 MATLAB语句
a=[1 2 3;4 5 6;7 8 0] [cond(a),norm(a),rank(a)]
2.MATLAB工作环境
图形窗口“Figure”
M文件窗口
3.MATLAB的M文件
所谓M文件,就是用户把要实现的命令写在一个 以.m为扩展名的文件中
M文件有两种格式(统称为M文件) 函数式M文件 程序式M文件 程序式M文件用于把很多需要在命令窗口输入的命 令放在一起,就是命令的简单叠加 函数式M文件用于把重复的程序段封装成函数供用 户调用。
&
|
逻辑与
逻辑或
and(a,b)
第二章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 , 分别为
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例
A= -4 -2 0 2 4 -3 -1 1 3 5 >>A(3,3)=10 A= -4 -2 0 2 4 -3 -1 1 3 5 0 0 10 0 0
>>A(2,3)=10 A= -4 -2 0 2 4 -3 -1 10 3 5
给全行、全列赋值,可用冒号“:”
例:a(5,:)=[5,4,3];
4、利用M文件中的函数生成矩阵
2.1.4 向量的生成
在MATLAB中数组可以看成是行向量,即只有一行或 一列的矩阵。前面介绍的所有矩阵的建立和保存的方 法,对向量同样适用,这里不再重复。同时,介绍 matlab中创建向量的特殊命令。 1.利用冒号“:”创建等差数列: t=[初值:增量:终值] 其中 “增量”是可以省略的,省略时,默认的增量步 长为1。增量也可以是负值,但此时,初值应该大于终 值。 例如:x=1:5; y=0:pi/4:2*pi; z=6:-1:0;
• ans — 对于未赋值运算结果,自动赋给ans
丢失,直至清除变量或重启Matlab
2.1.2、 MATLAB 的语句
1.百分号(注释符)% 与其它程序语言一样,为了方便其他人及日 后自己对程序的阅读,增加程序的可读性,需要 在MATLAB文件中加入注释。注释行必须以%号 开始,执行文件时,%号后面的语句不予执行。 2.逗号和分号 在赋值语句中,逗号(空格)用在同一行中各 元素之间,分号用在行与行之间。多条语句放在一 行,用逗号分开表示要求显示结果,由分号分开表 示不要求显示结果。
注意空矩阵与零矩阵的差别
zeros(m,n) 元素全为零的mn阶矩阵 ones(m,n) 元素全为 1 的mn矩阵 rand(m,n) 元素为在[0,1]上均匀分布的mn随机矩阵 randn(m,n) 元素为正态分布的mn随机矩阵 以上命令可以只有一个参数,生成的是方阵 eye(n) 单位矩阵, nn阶的方阵
6 4 1 2 7 5
A(1 : 5,5) A(:, 5) A( 21 : 25)
A
4 8 7
10 2 5
1 9 7
A(4 : 5,2 : 3)或 A([ 4,5], [2,3])
0
23
3
13
4
13
5
0
4
3
在MATLAB的内部数据储存结构中,每一个矩阵都是 一个以列为主的向量,因此对于矩阵内各元素的存 取是按列来进行总排。 冒号“:”表示“全部”。
矩阵里的元素也可以用表达式代替,例如输入
X=[-1.3,sqrt(3),(1+2+3)/5*4] 显示结果 X= 矩阵里的元素还可以是 复数,复数用内定变量 i,j表示
-1.3000 1.7321 4.8000
2、由函数创建和修改矩阵:
MATLAB提供用于创建某些特殊矩阵的函数
A=[ ] 创建空矩阵
2.利用函数linspace和logspace创建向量: linspace 函数,创建指定长度的等距向量 t=linspace(初值d1,终值d2,点数n) 意义为:在线性空间上,行矢量的值从d1到d2,数 据个数n,缺省时n为100。 例:k=linspace(-pi,pi,4) logspace 函数,创建对数等距的向量 y=logspace(d1,d2) y=logspace(d1,d2,N) 意义为:从10的d1次幂到d2次幂之间按等比级数等分 为N个点,N缺省时,默认为50。
例 找出数组A=
-4 -2 0 2 4 中所有绝对值大于3的元素 -3 -1 1 3 5
A=[-4,-2,0,2,4;-3,-1,1,3,5]; %创建矩阵A
L=abs(A)>3 islogical(L) X=A(L)
%建立矩阵L
%判断L中是否有逻辑1
%指出A中绝对值大于3的元素
其它赋值方式
用户可以利用下标给元素某单独赋值。如果赋值元素的 下标超出了原来矩阵的大小,矩阵的行列会自动扩展, 跳空的元素被自动赋值0。 ※这种自动扩展维数的功能只适用于赋值语句
把a的第2,4行及第1,3列交点上的元素取出, 构成一个新的矩阵。 例:b=a([2,4],[1,3]);
利用空矩阵“[ ]‖,可抽去a中的任意行 例:a([2,4],:)=[ ];
―空矩阵”是指没有元素的矩阵,不是零矩阵。对任何 一个矩阵赋值[ ],就是使它的元素都消失。
例
利用单下标创建矩阵
>>A=zeros(2,5); %创建25的零矩阵 >>A(:)=-4:5 %修改矩阵给编号从1~10的 元素分别赋值, 大小从-4按步长1一直增加到5 A= -4 -2 0 2 4 -3 -1 1 3 5
2.1.6 复数表示
MATLAB的每一个元素都可以是复数,实数是复数 的特例。复数的虚部用i或j表示。
对复数有两种赋值方法: 1.将其元素逐个赋予复数 如 z=[1+2i,3+4i;5+6i,7+8i] 2.将其实部和虚部矩阵分别赋值 如z=[1,3;5,7]+[2,4;6,8]*i (*号不能省略) 若在前面程序中曾经给i或j赋过值,则i或j就不再是虚 数单位,此时应把赋值的i或j清除再执行虚数赋值语 句。
magic(n) 魔方矩阵,其特点是元素由1到n2的自然数 组成,每行、每列及两对角线上的元素之和均等于 (n3+n)/2
3、从外部数据文件调入矩阵:
在MATLAB中,还可以从外部文件读入数据生成矩阵。 这些文件可以是存储Matlab已经生成的矩阵二进制文 件,也可以是包含数值数据的文本文件。在文本文件 中,数据必须排成一个矩阵表,数据之间用用空格分 隔,每行包含矩阵的一行。保存文件时,文件名后缀 为.dat 例如:有文本文件mydata.txt,将后缀改为.dat,在命 令窗口输入: load mydata.dat %把文件中的内容调入到工作空间中 mydata %显示变量mydata
2.2.3 who和whos命令(变量信息的查询)
在调试程序的时候,往往需要检查工作空间中的变量 及其阶数。这时需要用到who和whos命令。who命令 用于查看工作空间都有哪些变量名;whos命令用于了 解变量的具体细节。调用方式: who(whos) 查看工作空间里所有的变量 who(whos) a b 查看工作空间里的变量a和b 被查看的变量之间只能用空格,不能用逗号或分号。
永久变量
• eps — 容差变量,定义为1.0到最近浮点数的
距离,在 pc机上= 2-52 • pi — 圆周率的近似值3.1415926 • inf或Inf — 表示正无大,定义为1/0 • NaN — 非数,它产生于0× ,0/0,/ 等 运算
如果用户给永久变量赋值,原始默认值 • i,j — 虚数单位
1.请指出如下5个变量名中,哪些是合法的? abcd-2 xyz_3 3chan a变量 ABCDefgh 2.指令clear, clc各有什么用处?
3.创建一个6阶的魔方矩阵A 把第3行第4列的元素赋给B 把第2行、第4行的所有元素赋给C
4.矩阵A=[2 4 5 9; -4 6 3 -7],找出A中大于3 的元素赋 值给B 5.使用两种方法产生[0,3*pi]等间隔分布10个点的向 量
例
>>a=1;b=2;c=3; >>clear a,b;c c= 3 >>b b= 2 >>a ??? Undefined function or variable ‗a‘. ※用clear命令时,系统不会给出确认提示,一旦 删除将不能恢复。
A(2,3)或A(12)
A([1,3], [1,4])
2.2.2 clear命令(变量的删除)
Matlab中内存变量的删除可以通过在指令窗口中运行 clear来进行。clear操作通常有两种方式: clear 清除当前工作空间中的全部变量 clear a b c 清除当前工作空间中的变量a、b、c 被清除的变量之间只能用空格,不能用逗号或分号。 因为在一条指令中,逗号和分号都表示该指令结束, 不同的是逗号结束的指令要显示运算结果,而分号结 束的指令不显示执行结果。
电子信息技术之一 Matlab语言基础
第二章 MATLAB 的数 值计算功能
2.1 变量及其赋值
2.1.1变量 像任何其他计算机语言一样,MATLAB 也是使用变量 来保存信息的。变量由变量名表示,变量的命名应遵 循如下规则: 1.变量名必须以字母开头;由字母、数字和下划线 混合组成;不允许使用空格、标点符号; 2.变量名的字符长度不应超过31个(对于6.x版本); 3. MATLAB严格区分大小写字母,因此,A和a是不同 的变量。 4.关键字(如 if,while 等)不能作为变量名。 MATLAB的固定变量见表2 - 1
1、直接输入矩阵:
对于较小的简单矩阵,从键盘上直接输入矩阵时最常 用、最方便和最好的数值矩阵创建方法。创建矩阵的 基本原则: •矩阵的所有元素必须放在方括号“[ ]‖内; •矩阵元素之间必须用逗号“,”或空格隔开; •矩阵行与行之间用分号“;”或回车符隔开; •矩阵元素可以是数字或任何不含未定义变量的表达式。 例如输入语句 显示的结果为: a=[1 2 3;4 5 6;7 8 9] a= 1 2 3 4 5 6 7 8 9
load是save的逆过程,它把磁盘上存储的mat数据取回到 MATLAB的工作空间中。默认的文件名也是matlab.mat。 在不用默认文件时,命令格式与save相似。 load Loading from: matlab.mat 当要提取文件中某些变量时,文件名不能省略。 例如:load A 提取文件matlab中的A变量 ??? Error using ==> load Unable to read file A: No such file or directory.
save filename a b c 把a、b、c三个变量保存在文件名为 myfile.mat的文件中。 save filename a b c –append 把a、b、c三个变量添加到 文件名为myfile.mat的文件中。