Matlab初步(讲稿) 上课方式:学生边听讲、边用机器练习 调用 Matlab软件:在 windows平台上,双击“ Matlab”图标 说明:执行此命令,将进入“ Matlab工作区(命令区)”,在这里可以下达、 执行符合 Matlab语法的各种命令。 .矩阵;数组 1.矩阵 2-18 例:输入一个矩阵031|,并用A代表此矩阵 -596 再输入一个矩阵 ,并用a代表此矩阵 命令为:A=[2-18:0,31;-59,6;a=[0,1,-1;-1,2,1 说明:(1)输入上述命令后,敲回车键,机器才执行此命令 (2)你发现机器屏幕没反应,其实它早已接受并执行了你的命令,不信? 请下命令A就有反应了。再下命令a (3)清屏(把屏幕上的 Matlab工作区清理的干干净净) 屏幕空了,但你的那两个矩阵A、a还在机器中。 (4)注意要点:中括号逗号分号字母大小写 注意:(1)A(ij)表示矩阵A的第i行、第j列交叉处的元素 练习:AA(3,1)A(1,2)A(2,3)aa(2,3)y=A(3,1)=a(2,2) (2)可修改个别元素 练习:a(2,2)=8 (3)可把矩阵的型号(即:行个数、列个数)放大 练习 A(2.4)9Aa(3,5)=99a (4)一些特殊矩阵 m行n列的全0矩阵: zeros(m,n) 全1矩阵:ones(mn) m行n列的单位矩阵:eyem,n) 随机矩阵:rand(m,n) (随机矩阵的每个元素都是:开区间(0.1)内的均匀分布随机数) 练习 zero s(2,3) zeros(1, 5) ones(4, 4) ones(2, 4) eye(3,3) eye(3,5) eye(4,2) rand (3, 4) rand(1,10) 请产生20个在区间0.8内的随机数,请产生20个在区间(3.8)内的随机数
Matlab 初步(讲稿) 上课方式:学生边听讲、边用机器练习。 调用 Matlab 软件:在 windows 平台上,双击“Matlab”图标。 说明:执行此命令,将进入“Matlab 工作区(命令区)”,在这里可以下达、 执行符合 Matlab 语法的各种命令。 一.矩阵;数组 1.矩阵 例:输入一个矩阵 − − 59 6 0 31 2 18 ,并用 A 代表此矩阵; 再输入一个矩阵 − − 1 2 1 0 1 1 ,并用 a 代表此矩阵. 命令为:A=[2,-18;0,31;-59,6]; a=[0,1,-1;-1,2,1]; 说明:(1)输入上述命令后,敲回车键,机器才执行此命令 (2) 你发现机器屏幕没反应,其实它早已接受并执行了你的命令,不信? 请下命令 A 就有反应了。 再下命令 a (3)清屏(把屏幕上的 Matlab 工作区清理的干干净净) 屏幕空了,但你的那两个矩阵 A、a 还在机器中。 (4)注意要点:中括号 逗号 分号 字母大小写。 注意:(1) A(i,j) 表示矩阵 A 的第 i 行、第 j 列交叉处的元素 练习: A A(3,1) A(1,2) A(2,3) a a(2,3) y=A(3,1)*a(2,2) (2)可修改个别元素 练习: a(2,2)=8 a (3)可把矩阵的型号(即:行个数、列个数)放大 练习: A(2,4)=9 A a(3,5)=99 a (4)一些特殊矩阵 m 行 n 列的 全 0 矩阵:zeros(m,n) 全 1 矩阵:ones(m,n) m 行 n 列的 单位矩阵:eye(m, n) 随机矩阵:rand(m,n) (随机矩阵的每个元素都是:开区间(0.1)内的均匀分布随机数) 练习: zeros(2,3) zeros(1,5) ones(4,4) ones(2,4) eye(3,3) eye(3,5) eye(4,2) rand(3,4) rand(1,10) 请产生 20 个在区间(0,8)内的随机数, 请产生 20 个在区间(3,8)内的随机数
对矩阵作裁剪、拼接 裁剪:从矩阵中提取某些行、某些列(关键符号:) 如(练习):A(2,;)是A的第2行(;1)是A的第1列 A(1:2,2:4)是A的第1、2行,与第2、3、4列交叉点元素 12345678 输入W=98765432,它的第2、3行,与第3、4、5、6列交 23456789 叉点元素是什么? W的第1、3、5、7列构成的矩阵是W(,1:2:7)(起点1,步长2,终点7) W的第1、3行,第2、5、8列构成的矩阵是W(1:2:3,2:3:8) 问:W的第1、4、7列构成的矩阵?W的第1、3行,第2、4、6列构成的矩阵? 检验:w(;7:2:1)看结果,猜一猜什么规则? 检验:WW(:,5)=看结果,猜一猜什么规则? 此时,W还剩7个列,请你用一个命令去掉它的第3、5列 拼接:把若干个矩阵、数,拼凑、结合成一个矩阵 先做准备:把机器中全部的常量(包括矩阵、数)清除,命令为 clear 147 0-3 再重新输入:A=258,B=-1-4,a=[0 练习 左右拼接[A,B][B,A][a,8][8a76 上下拼接[Aa][a;A][A,8,18,28;a] 试一试:左右拼接[A,a][A,8] 上下拼接[AB][A8,18 题:用这三个矩阵A、B、a,拼接出矩阵 4258 2-5369 1810-128 3.数组 1×n型矩阵(即:只有一行的矩阵),称为行向量,也称为数组。 例:用a1表示一个从0到18的全体偶数构成的数组。 解:法一:格式为起点:步长:终点 命令为a1=0:2:18 法二:格式为 linspace起点,终点,个数) 命令为a1= linspace(0,18,10)
2.对矩阵作裁剪、拼接 裁剪:从矩阵中提取某些行、某些列 (关键符号 : ) 如(练习): A(2,:) 是 A 的第 2 行 A(:,1) 是 A 的第 1 列 A(1:2,2:4) 是 A 的第 1、2 行,与第 2、3、4 列交叉点元素 输入 = 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 W ,它的第 2、3 行,与第 3、4、5、6 列交 叉点元素是什么? W 的第 1、3、5、7 列构成的矩阵是 W(:,1:2:7) (起点 1,步长 2,终点 7) W 的第 1、3 行,第 2、5、8 列构成的矩阵是 W(1:2:3,2:3:8) 问:W 的第 1、4、7 列构成的矩阵? W 的第 1、3 行,第 2、4、6 列构成的矩阵? 检验: W(:,7:-2:1) 看结果,猜一猜什么规则? 检验: W W(:,5)=[] 看结果,猜一猜什么规则? 此时,W 还剩 7 个列,请你用一个命令去掉它的第 3、5 列。 拼接:把若干个矩阵、数,拼凑、结合成一个矩阵 先做准备:把机器中全部的常量(包括矩阵、数)清除,命令为 clear 再重新输入: − − − − − = = 2 5 1 4 0 3 , 3 6 9 2 5 8 1 4 7 A B ,a = 1 0 −1. 练习: 左右拼接 [A,B] [B,A] [a,8] [8,a,7,6] 上下拼接 [A;a] [a;A] [A;8,18,28;a] 试一试: 左右拼接 [A,a] [A,8] 上下拼接 [A;B] [A;8,18] 题:用这三个矩阵 A、B、a,拼接出矩阵 . 18 1 0 1 28 2 5 3 6 9 1 4 2 5 8 0 3 1 4 7 − − − − − − 3.数组 1n 型矩阵(即:只有一行的矩阵),称为行向量,也称为数组。 例:用 a1 表示一个从 0 到 18 的全体偶数构成的数组。 解: 法一: 格式为 起点 : 步长 : 终点 命令为 a1=0:2:18 法二: 格式为 linspace(起点 , 终点 , 个数) 命令为 a1=linspace(0,18,10)
(这两种格式的命令都表示等差数列) 练习:用a2表示一个从9到1的全体奇数构成的数组 用a3表示一个从9到9的全体整数构成的数组 用第二种格式、用:4表示一个从6到8的5个数构成的等差数列 把两个数组a与a4合并成一个数组;|a2,a4 用a5表示数组1,4,7,37,38,35,32,,2,3,6,9,,39 二.运算 1.矩阵运算 加减乘乘方左除右除转置 单引号) 注 :(1)+, \,/都应符合矩阵运算规则; (2)特别,数与数的运算:加+减-乘*除 (3)数与矩阵的加减乘 练习:A2+A2-AA-22÷AA*2 (4)AB读作A左除B,其本质是AB A/B读作B右除A,其本质是AB 主要用来解“矩阵方程”,如:AXB=C,其中A,B,C均为已知矩阵, X是未知矩阵,则X=ACB-.命令是X=(AC)B 例:2 3,求 +0.1x2+0.2x32+0.3x4=5 例:解线性方程组 0.1x1+x2+0.2x3+0.3x4=6 0.1x+02x2+x3+0.3x1=7 0.1x1+0.2x2+0.3x3+x4=8 2.数组运算 点乘点乘方点左除 点右除 练习:a=[12,34]b={5,6,7,8]c=156,7] a *bb. 2 a. 3 a 0.5 a \ b a/bb a 通过练习,搞明白运算规则 若两个矩阵A、B同型号,则A.*BA^B合法;
(这两种格式的命令都表示等差数列) 练习:用 a2 表示一个从 9 到 1 的全体奇数构成的数组; 用 a3 表示一个从 9 到-9 的全体整数构成的数组; 用第二种格式、用 a4 表示一个从-6 到 8 的 5 个数构成的等差数列; 把两个数组 a2 与 a4 合并成一个数组; [a2,a4] 用 a5 表示数组 1,4,7,…,37,38,35,32,…,2,3,6,9,…,39 二.运算 1.矩阵运算 加 减 乘 乘方 左除 右除 转置 + - * ^ \ / ‘ (单引号) 注:(1) + , - , * , ^ , \ , / 都应符合矩阵运算规则; (2)特别,数与数的运算: 加 + 减 - 乘 * 除 / (3)数与矩阵的 加 减 乘 练习: A 2+A 2-A A-2 2*A A*2 (4) A\B 读作 A 左除 B , 其本质是 A B −1 A/B 读作 B 右除 A , 其本质是 −1 AB 主要用来解“矩阵方程”,如:AXB=C,其中 A,B,C 均为已知矩阵, X 是未知矩阵,则 −1 −1 X = A CB . 命令是 X=(A\C)/B . 例: = − − − − 3 2 1 3 1 4 1 1 2 0 1 1 1 2 1 0 2 1 1 X ,求 X=? 例:解线性方程组 + + + = + + + = + + + = + + + = 0.1 0.2 0.3 8 0.1 0.2 0.3 7 0.1 0.2 0.3 6 0.1 0.2 0.3 5 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 x x x x x x x x x x x x x x x x 2.数组运算 点乘 点乘方 点左除 点右除 .* .^ .\ ./ 练习: a=[1,2,3,4] b=[5,6,7,8] c=[5,6,7] a.*b b.^2 a.^3 a.^0.5 a.\b a./b b.\a a.*c 通过练习,搞明白运算规则。 若两个矩阵 A、B 同型号,则 A.*B A.^B 合法;
若两个矩阵A、B同型号,且B的元素都非零,则A/BB.A合法 10 练习 学习运算规则 0-22 三.命令语句,函数 1.命令语句格式:变量一表达式 (1)“表达式”不可缺省,“变量=”可缺省。 若语句中缺省“变量=”,则机器把执行结果自动记为ans 例如:[0.2]*[3;12],(此命令中只有表达式,缺省“变量=”),结果为ans= (2)同一行可以写多个语句,语句与语句之间用逗号或分号隔开。 练习:(借用前面的ab) 整行命令为a,b,c=a*b’,d=a.*b,e=a./b再敲回车键执行命令。 (3)若只要求机器执行命令、而不让机器把某个语句的执行结果显示在屏 幕上,则必须在该语句之后跟分号 练习:一整行命令为a,b;c=a“b’,d=a.b;e=a./b;再敲回车键执行命令。 (4)关于变量名:你可以任意用一个字符串来代表一个变量名,但必须 满足两条:字母打头;避开 Matlab软件的专用符号。 几个专用符号: 是圆周率x eps是最小浮点数(即:机器所能够处理的最小正数) Inf 是+ NaN是不定值 练习:pi 2/0 (3-3)(2“0) 介绍 format long与 format 2.函数 (1)普通函数(也称标量函数,简称函数) 常见的函数 exp log 10 Sq round floor ceil 四舍五入取整 负向取整 正向取整 f(a1) 设∫(x)是普通函数,A ,则f(A) 练习:A12 46 cos(a) tan(A) exp(A) log(A)log10(A) sqrt(A) a[-601-449-2500.990992.50449601 rou floor(a)
若两个矩阵 A、B 同型号,且 B 的元素都非零,则 A./B B.\A 合法. 练习: − − − 3 3 2 2 1 1 , 0 2 2 1 0 1 ,学习运算规则。 三.命令语句,函数 1.命令语句格式: 变量=表达式 (1)“表达式”不可缺省, “变量=”可缺省。 若语句中缺省“变量=”,则机器把执行结果自动记为 ans . 例如:[1,0,-2]*[3;1;2] , (此命令中只有表达式,缺省“变量=”),结果为 ans = -1 . (2)同一行可以写多个语句,语句与语句之间用逗号或分号隔开。 练习:(借用前面的 a,b) 一整行命令为 a,b,c=a*b’,d=a.*b,e=a./b 再敲回车键执行命令。 (3)若只要求机器执行命令、而不让机器把某个语句的执行结果显示在屏 幕上, 则必须在该语句之后跟分号。 练习:一整行命令为 a,b;c=a*b’,d=a.*b;e=a./b; 再敲回车键执行命令。 (4)关于变量名:你可以任意用一个字符串来代表一个变量名,但必须 满足两条:字母打头;避开 Matlab 软件的专用符号。 几个专用符号: pi 是圆周率 eps 是最小浮点数(即:机器所能够处理的最小正数) Inf 是 + NaN 是不定值 练习: pi eps 2/0 (3-3)/(2*0) 介绍 format long 与 format 2.函数 (1)普通函数(也称标量函数,简称函数) 常见的函数: sin cos tan exp log log10 sqrt abs round floor ceil 四舍五入取整 负向取整 正向取整 设 f (x) 是普通函数, = m mn n a a a a A 1 11 1 ,则 . ( ) ( ) ( ) ( ) ( ) 1 11 1 = m mn n f a f a f a f a f A 练习: = 4 6 1 2 A ,cos(A) tan(A) exp(A) 1og(A) log10(A) sqrt(A) a=[-6.01 -4.49 -2.50 -0.99 0.99 2.50 4.49 6.01] round(a) floor(a) ceil(a)
(2)向量函数(也称数组函数) 常见的向量函数: length nax mun sum sort pro mean medan 度(维数) 排序乘积平均值 定义:设a是一个行向量、或列向量,则 length(a)是指向量a所包含的数的个数 a)是指向量a中的最大数 是指向量a中的全部数的和 a)是把向量a中的数,按照从小到排序,得到一个新的向量 prod(a)是指向量a中的全部数的积; mean(a)是指向量a中的全部数的平均值 mediane(a)若 length(a)奇,则是指向量 sort(a)中位于中间的那个数 若 length(a)偶,则是指向量sort(a)中位于中间的那两个数的平均值 例:a=[4,3-1061,b 0 yu sort(a=[-1, 0, 3, 4, 61, sort(b) median(a)3, median (b0. 5, mean(a)=2.4, mean(b)2.25 继续定义:设A是一个真正的矩阵(行数、列数都不小于2),则 length(A)是A的行数、列数两者中的最大者 sort(A)是把A的每个列各自排序,得到一个新的矩阵 其余的6个向量函数,作用于A是首先分别作用于每个列得到一个个数, 然后再把这些数写成一行,得到一个行向量。 定义完毕。 例:A=1-213,则1 length(A)=5max(A)=6.85 2-5-42 min(A)=[0-5,-4,1 sm(A={12,34.15](A=2013 6855 mean(A)=[240.6,0.8 median(A)=[2,0,1,3 习题:用机器产生一个6×4型矩阵G,它的元素是“0至99范围内的均匀分
(2)向量函数(也称数组函数) 常见的向量函数: length max min sum sort prod mean median 长度(维数) 和 排序 乘积 平均值 中值 定义:设 a 是一个行向量、或列向量,则 length(a) 是指 向量 a 所包含的数的个数; max(a) 是指 向量 a 中的最大数; sum(a) 是指 向量 a 中的全部数的和; sort(a) 是把向量 a 中的数,按照从小到排序,得到一个新的向量; prod(a) 是指 向量 a 中的全部数的积; mean(a) 是指 向量 a 中的全部数的平均值; median(a) 若 length(a)奇,则是指 向量 sort(a)中位于中间的那个数; 若 length(a)偶,则是指 向量 sort(a)中位于中间的那两个数的平均值。 例: − = − = 9 1 0 1 a [4,3, 1,0,6], b , 则 sort(a)=[-1,0,3,4,6], sort(b)= − 9 1 0 1 , median(a)=3, median(b)=0.5, mean(a)=2.4, mean(b)=2.25 继续定义:设 A 是一个真正的矩阵(行数、列数都不小于 2),则 length(A) 是 A 的行数、列数两者中的最大者; sort(A) 是 把 A 的每个列各自排序,得到一个新的矩阵; 其余的 6 个向量函数,作用于 A 是 首先分别作用于每个列得到一个个数, 然后再把这些数写成一行,得到一个行向量。 定义完毕。 例: − − = − 0 8 5 1 2 5 4 2 1 2 1 3 6 2 1 4 3 0 1 5 A ,则 length(A)=5 max(A)=[6,8,5,5] min(A)=[0,-5,-4,1] sum(A)=[12,3,4,15] sort(A)= − − − 6 8 5 5 3 2 1 4 2 0 1 3 1 2 1 2 0 5 4 1 mean(A)=[2.4,0.6,0.8,3] median(A)=[2,0,1,3] 习题:用机器产生一个6 4型矩阵 G,它的元素是“0 至 99 范围内的均匀分
布随机自然数”,G的第3行记为g1,G的第4列记为g2,用机器计算G,g1, g2的所有八种向量函数值。 (3)矩阵函数 第一类矩阵函数:(用来产生特殊矩阵) 如: zeros ones eye rand randn(标淮正态分布:NOn)等等 第二类矩阵函数:(用来计算矩阵的行列式、逆、秩、特征值等等 如:det rank 1g poly等等。 行列式逆秩特征值特征多项式 120 例:B-|-134,计算B的行列式、逆、秩、特征值、特征多项式 (课堂上教师详细做。讲解poly:多项式系数(从高次到低次)构成的向量) 四.多项式 例:用 Matlab表示多项式P(x)=x4-6x3+2x-8 解: P=1,6,0,2,8; Px=poly2str(P,x”) 执行结果为Px=x^4-6*x^3+2*x8 说明:(1)一个多项式的本质核心是它的各次项系数,把这些系数写成一个行向量(从 高次到低次)称为该多项式的系数向量,系数向量完全决定了多项式,上 面第一个命令就是把系数向量记作变量P (2)poly2str(P,x”)就是让机器根据系数向量P、以及符号x:写出多项式 若把此句改为PPP=poly2str(P,’t'),则执行结果为 PPP=^4-6*t^3+2*t-8 习题:用 Matlab表示多项式Q(x)=1-2x+3x2-8x+6x 例:已知6次多项式G(x)的6个根为 -0.380.544.770.3+04i0.3-04i 请写出G(x)的表达式。 解:R=0.38.0.5,4,477,0.3+0.40.3-0.41 P=poly(R);(根据根R计算出系数向量) Pl=real(P);(因机器计算有误差,P带有虚部。根据数学知识,当虚根共轭成对 出现时,必为实系数多项式。指令real(P就是提取P的实部) Gx= polt2str(P1,x”) 习题:5次多项式F(x)的5个根为2 012,请写出G(x)的表达式 7次多项式H(x)的7个根为3.2,-1.8,1,±i,3±2i,请写出H(x)的表达式 小结:指令poly(A),若A为方阵,则产生A的特征多项式的系数 若A为行向量,则产生以A为根的多项式的系数
布随机自然数”,G 的第 3 行记为 g1,G 的第 4 列记为 g2,用机器计算 G , g1 , g2 的所有八种向量函数值。 (3)矩阵函数 第一类矩阵函数:(用来产生特殊矩阵) 如:zeros ones eye rand randn(标准正态分布:N(0.1))等等。 第二类矩阵函数:(用来计算矩阵的 行列式、逆、秩、特征值 等等) 如: det inv rank eig poly 等等。 行列式 逆 秩 特征值 特征多项式 例:B= − 1 1 3 1 3 4 1 2 0 , 计算 B 的行列式、逆、秩、特征值、特征多项式。 (课堂上教师详细做。讲解 poly:多项式系数(从高次到低次)构成的向量) 四.多项式 例:用 Matlab 表示多项式 ( ) 6 2 8 . 4 3 P x = x − x + x − 解: P=[1,-6,0,2,-8]; Px=poly2str(P,’x’) 执行结果为 Px=x^4-6*x^3+2*x-8 说明:(1)一个多项式的本质核心是它的各次项系数,把这些系数写成一个行向量(从 高次到低次)称为该多项式的系数向量,系数向量完全决定了多项式,上 面第一个命令就是把系数向量记作变量 P; (2)poly2str(P,’x’) 就是让机器根据系数向量 P、以及符号’x’写出多项式。 若 把 此 句 改 为 PPP=poly2str(P,’t’) ,则执行结果为 PPP=t^4-6*t^3+2*t-8 。 习题:用 Matlab 表示多项式 ( ) 1 2 3 8 6 . 2 4 5 Q x = − x + x − x + x 例:已知 6 次多项式 G(x)的 6 个根为 -0.38 0.5 4 4.77 0.3+0.4i 0.3-0.4i 请写出 G(x)的表达式。 解:R=[-0.38,0.5,4,4.77,0.3+0.4i,0.3-0.4i]; P=poly(R); (根据根 R 计算出系数向量) P1=real(P); (因机器计算有误差,P 带有虚部。根据数学知识,当虚根共轭成对 出现时,必为实系数多项式。指令 real(P)就是提取 P 的实部) Gx=polt2str(P1,’x’) 习题:5 次多项式 F(x)的 5 个根为 -2 -1 0 1 2 , 请写出 G(x)的表达式。 7 次多项式 H(x)的 7 个根为 3.2, -1.8, 1, i, 3 2i, 请写出 H(x)的表达式。 小结:指令 poly(A),若 A 为方阵,则产生 A 的特征多项式的系数; 若 A 为行向量,则产生以 A 为根的多项式的系数
例:(anxm+axm1+…+ a box+bx”1+…+b)=? 解:命令:a=[an,a1…;an]b=[bb1…bn 再命令:c= conv(a,b),(产生系数向量) Cx=pol2str(c,’x) 完毕 习题:(x4-6x+2x-8)(1-2x+3x2-8x2+6x)=? 指令 roots(P的功能是:计算出以P为系数向量的多项式的根。 例:(求t3-62-72t+27的根) 指令 polya(PA)的功能是:计算出以P为系数向量的多项式在A的每个 元素处的值。 例:Q(x)=1-2x+3x2-8x4+6x3 2-46 B 求 Q(2)Q(-4)Q(6) Q(-3)Q5)Q(-7) 解:命令为P=|6,8,0,3,-2,1B=2,-4,6;-3,5,7; polyol(P,B)完毕。 指令 polyram(P,A)的功能是:A是方阵,按照矩阵运算规则计算出矩阵多 项式的值。 例:Q(x)=1-2x+3x2-8x4+6x A 求Q(A)=E-2A+3A2-82+6A3=? 解:命令为P=16,8,0,3,-2,1A=[2,-4;-3,5] polyram(P,A)完毕。 五. Matlab工作区下的操作(初级) 清屏:cle 显示全部变量名:who(简显)或whos(详细显示) 显示某个变量AAA的内容:AAA或disp(AAA) 清除变量:(1)只清除变量AAA,则命令是cear(AAA) 数据的参(2)清除机器中的全部变量,则命令是car 出格式 短型 format long 长型 format rat 分数型
例:( )( ) ? 1 0 1 1 0 + 1 + + + + + = − − n n n m m m a x a x a b x b x b 解: 命令: [ , , , ]; a = a0 a1 am [ , , , ]; b = b0 b1 bn 再命令:c=conv(a,b); (产生系数向量) Cx=polt2str(c,’x’) 完毕。 习题:( 6 2 8) 4 3 x − x + x − (1 2 3 8 6 ) 2 4 5 − x + x − x + x =? 指令 roots(P) 的功能是:计算出以 P 为系数向量的多项式的根。 例:(求 6 72 27 3 2 t − t − t + 的根) 指令 polyval(P,A) 的功能是:计算出以 P 为系数向量的多项式在 A 的每个 元素处的值。 例: ( ) 1 2 3 8 6 . 2 4 5 Q x = − x + x − x + x − − − = 3 5 7 2 4 6 B , 求 − − − ( 3) (5) ( 7) (2) ( 4) (6) Q Q Q Q Q Q 解:命令为 P=[6,-8,0,3,-2,1];B=[2,-4,6;-3,5,-7];polyval(P,B) 完毕。 指令 polyvalm(P,A) 的功能是:A 是方阵,按照矩阵运算规则计算出矩阵多 项式的值。 例: ( ) 1 2 3 8 6 . 2 4 5 Q x = − x + x − x + x − − = 3 5 2 4 A , 求 ( ) 2 3 8 6 ? 2 4 5 Q A = E − A+ A − A + A = 解:命令为 P=[6,-8,0,3,-2,1];A=[2,-4;-3,5];polyvalm(P,A) 完毕。 五.Matlab 工作区下的操作(初级) 清屏: clc 显示全部变量名: who(简显) 或 whos(详细显示) 显示某个变量 AAA 的内容: AAA 或 disp(AAA) 清除变量:(1)只清除变量 AAA,则命令是 clear(AAA) (2)清除机器中的全部变量,则命令是 clear 数据的输出格式: format 短型 format long 长型 format rat 分数型
六.图形功能 1.二维图形(命令词:plot) 例1:已知x取值为1,2,3,4,5,6 y取值为0,0.5,0.7,1.1,0.9,0.2 请以ⅹ为横坐标、y为纵坐标,画出折线图。 解:以下三个方法中的任意一个都可以,其结果完全一样 (1)x=[1,2,3,4,56ly=10,0.5,0.7,11,0.9,0.2plot(xy (2)x=1:6;y=|0,0.5,0.7,11,0.9,0.2 Plot(x2y) (3)y=|0,0.5,0.7,11,0.9,0.2J; plot(y) 例2:画出正弦曲线y=sin(x)在区间[04x]上的图形 练习:y=x2 =In 画图 一图多线:(在同一个坐标图中画两条以上的曲线) 法一:例1:x=0pi102*piyl-=si(x)y2=cosx) plot(x, yl,xy2) 15 2: X=0: pi/10: 2*pi; y 1=sin(x):y 2=cos(x) y3=(sin(x)+cos(x))/2 plot(, yl, x, y2, x, y3) 例3:在同一图中画四条线,横坐标范围是[0,2丌],函数分别是 1+sinx x(2T-x) x1=0: pi/10: 2*pi;y 1=(1+sin(x))/2: X2=[0, 2*pi]; y2=X2/(2*pi); y3=x1.*(2*pixl)pi^2y4=[0.606 plot(x1, y1, x2, y2, x1, y3, x 2, y4) 法二:重做例3:只需把 plot(xl,y1,x2y2,xly3,x2y4)改成 hold on, plot(x1, y 1),plot(xl, y3)plot(x 2, y2),plot(x2, y4), hold off 习题:在同一图中画四条线,横坐标范围是[1,2丌+1],函数分别是 y=cos x, y=1 I (x-1)2z+1-x),y=04,y= 加“坐标网格” 法一:在plot(…)之后紧跟grid 演示:plot(x1,y1,x2,y2,x1,y3,x2,y4)grid EX* hold on, plot(xl, y 1),plot(xl, y 3),plot(x2, y2), plot(x2, y4), grid, hold off 法二:事后补加(先画好没有网格的图,再补加网格) 演示:先命令plot(x1y1),再命令grid
六.图形功能 1.二维图形 (命令词: plot ) 例 1:已知 x 取值为 1, 2, 3, 4, 5, 6 y 取值为 0, 0.5, 0.7, 1.1, 0.9, 0.2 请以 x 为横坐标、y 为纵坐标,画出折线图。 解:以下三个方法中的任意一个都可以,其结果完全一样 (1)x=[1,2,3,4,5,6];y=[0,0.5,0.7,1.1,0.9,0.2];plot(x,y) (2)x=1:6;y=[0,0.5,0.7,1.1,0.9,0.2];plot(x,y) (3)y=[0,0.5,0.7,1.1,0.9,0.2];plot(y) 例 2:画出正弦曲线 y=sin(x)在区间 [0,4 ] 上的图形。 练习: , , , ln , 1 . 2 2 y x y x y e y x y x x = = = = = − 画图 一图多线:(在同一个坐标图中画两条以上的曲线) 法一:例 1:x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2) 例 2:x=0:pi/10:2*pi;y1=sin(x);y2=cos(x); y3=(sin(x)+cos(x))/2;plot(x,y1,x,y2,x,y3) 例 3:在同一图中画四条线,横坐标范围是[0,2 ],函数分别是 y= 2 1+ sin x y= 2 x y= (2 ) 1 2 x − x y 0.6 x1=0:pi/10:2*pi;y1=(1+sin(x))/2;x2=[0,2*pi];y2=x2/(2*pi); y3=x1.*(2*pi-x1)/pi^2;y4=[0.6,0.6]; plot(x1,y1,x2,y2,x1,y3,x2,y4) 法二:重做例 3:只需把 plot(x1,y1,x2,y2,x1,y3,x2,y4)改成 hold on,plot(x1,y1),plot(x1,y3),plot(x2,y2),plot(x2,y4),hold off 习题:在同一图中画四条线,横坐标范围是[1,2 +1],函数分别是 y x 2 = cos , ( 1)(2 1 ) 1 1 2 y = − x − + − x , y 0.4 , . 50 2 x y = 加“坐标网格”: 法一:在 plot(……) 之后紧跟 grid 演示:plot(x1,y1,x2,y2,x1,y3,x2,y4),grid 或者 hold on,plot(x1,y1),plot(x1,y3),plot(x2,y2),plot(x2,y4),grid,hold off 法二:事后补加(先画好没有网格的图,再补加网格) 演示:先命令 plot(x1,y1) ,再命令 grid
加“标记”:(1)给图加标题:ie**”) (2)给坐标轴加标记:横轴: xlabel(“**”) 纵轴:yabe“***) (3)给曲线加标记: text(aaa, bbb***) 说明:这四个命令的用法与前面grid相同(紧跟plo(),或事后补加) 红色符号是本质(包括:小括号、逗号、单引号),不可改变; **是你准备加注的字符,由你自己决定; 你准备把“曲线标记”放在哪个位置?答:aa是横坐标,bbb是纵坐标。 演示:略写,教师在课堂机器上演示 对坐标系进行控制 axis equal 使得横轴与纵轴的单位长度相同 axis square 使得图呈现正方形: axis( aax, bbx, aay, bby)实现你的愿望:使得横坐标从ax到bbx、纵坐标从 ay到bby 演示:略写,教师在课堂机器上演示。 多幅图形:在同一个画面上建立多个坐标系,每个坐标系中各自画图、互不干扰 关键词: subplot(,np),把画面分割成mxn个图形区域,p代表第几个图 例如:借用前面的x1,x2,y1,y2,y3,y4 subplot(1, 4, 1), plot(xl, yl) plot(1, 4, 2), plot(x2, y2),gr 4, 3), plot(xl, y3), subplot(1, 4, 4), plot(x2, y4) 果真难看!改 subplot(2, 2, 1), plot(xl, yl) subplot(2, 2, 2), plot(x2, y2),grid subplot(2, 2, 3), plot(xl, y3),grid subplot(2, 2, 4), plot(x2, y4) 结果好看了! 习题:同一个画面上6幅图 sin x(1+ cosx), tanx, x-x,er 2.三维图形 先不动脑筋,看别人做的一个三维曲面图,感受一下 Matlab作图效果 75≤x≤7.5 例:画出曲面z=f(x,y) 7.5≤y≤7.5 解:x=75:0.5:75;y=x;〖X,Y}= meshgrid(x,y)
加“标记”:(1)给图加标题:title(‘******’) (2)给坐标轴加标记:横轴:xlabel(‘******’) 纵轴:ylabel(‘******’) (3)给曲线加标记:text(aaa,bbb,‘******’) 说明:这四个命令的用法与前面 grid 相同(紧跟 plot(….),或事后补加); 红色符号是本质(包括:小括号、逗号、单引号),不可改变; ***** 是你准备加注的字符,由你自己决定; 你准备把“曲线标记”放在哪个位置? 答:aaa 是横坐标,bbb 是纵坐标。 演示:略写,教师在课堂机器上演示。 对坐标系进行控制: axis equal 使得横轴与纵轴的单位长度相同; axis square 使得图呈现正方形; axis(aax,bbx,aay,bby) 实现你的愿望:使得横坐标从 aax 到 bbx、纵坐标从 aay 到 bby . 演示:略写,教师在课堂机器上演示。 多幅图形:在同一个画面上建立多个坐标系,每个坐标系中各自画图、互不干扰 关键词:subplot(m,n,p) , 把画面分割成 mn 个图形区域,p 代表第几个图。 例如:借用前面的 x1, x2 , y1, y2, y3, y4, subplot(1,4,1),plot(x1,y1) subplot(1,4,2),plot(x2,y2),grid subplot(1,4,3),plot(x1,y3),grid subplot(1,4,4),plot(x2,y4) 结果真难看! 改 subplot(2,2,1),plot(x1,y1) subplot(2,2,2),plot(x2,y2),grid subplot(2,2,3),plot(x1,y3),grid subplot(2,2,4),plot(x2,y4) 结果好看了! 习题:同一个画面上 6 幅图: x sin x, sin x(1 cos x), tan x, x , x , e −1 1.5 + 2.三维图形 先不动脑筋,看别人做的一个三维曲面图,感受一下 Matlab 作图效果。 例:画出曲面 . 7.5 7.5 7.5 7.5 , sin ( , ) 2 2 2 2 − − + + = = y x x y x y z f x y 解:x=-7.5:0.5:7.5;y=x; [X,Y]=meshgrid(x,y);
R=sqrt(x. 2+Y. 2)+eps; ZFsin(R)./R: mesh(X,Y, z (1)带网格的曲面图(关键词:mesh) 例如:画曲面z=f(x,y) 0.5≤x≤0.5 -0.5≤y≤0.5 x=40.5:0.1:0.5;y=x; X,Y= meshgrid(x,y);(组建三维图形的X,Y数组) z=sqrt(1-X.^2-Y.^2); mesh(X,Y, 4 (画图) (2)曲面的等高线图(关键词: contour.3) 续上题:把mesh(X,Y,Z改为 contour3(X,Y,Z,5) (其中,5是准备画5条等高线) (3)空间三维曲线图(关键词:plot3) 例:螺旋线的参数方程为:x=snt,y=cos,z=t 试在范围-20≤1≤20内,画出该曲线。 fi: t=-20: pi/0: 20; x=sin(t);y=cos( t); z=t;plot(x, y, z) 习题:曲面z=x2+y2,-2≤x,y≤2,分别画网格图和等高线图 曲线x=t,y=snt,z=sn(2n).自己适当取t的范围 七.程序 1.编写、保存、打开、修改、执行程序 编写新程序:击活菜单Fik,选New,单击 M-file,进入编辑区,可编写程序 例1:(演示:怎样编写、保存、打开、修改、执行程序?) 请按照规律1+2=3,2+3=5,3+5=8,5+8=13写出30个数作为一个数组 a=[l,2,3,5,8,13 简要说明:(1)保存新文件:Fle-Save,文件名必须字母打头; (2)打开旧文件:File-Open--文件名,打开以后就可修改内容 (3)执行:Dbug--Run 2.关系运算,逻辑运算 (1)关系运算:(比较两个数 共6种运算符:2 2<2 2<=2 1==2 课堂判断: atab规定:当关系成立时,结果是l;当关系不成立时,结果是0 课堂做,且机器检验:(1<2)?
R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R; mesh(X,Y,Z) (1)带网格的曲面图 (关键词:mesh ) 例如:画曲面 . 0.5 0.5 0.5 0.5 ( , ) 1 , 2 2 − − = = − − y x z f x y x y x=-0.5:0.1:0.5;y=x; [X,Y]=meshgrid(x,y); (组建三维图形的 X,Y 数组) Z=sqrt(1-X.^2-Y.^2); mesh(X,Y,Z) (画图) (2)曲面的等高线图 (关键词:contour3 ) 续上题:把 mesh(X,Y,Z) 改为 contour3(X,Y,Z,5) (其中,5 是准备画 5 条等高线) (3)空间三维曲线图 (关键词:plot3 ) 例:螺旋线的参数方程为: x = sin t, y = cost, z = t . 试在范围− 20 t 20 内,画出该曲线。 解:t=-20:pi/30:20;x=sin(t);y=cos(t);z=t;plot3(x,y,z) 习题:曲面 , 2 , 2 2 2 z = x + y − x y ,分别画网格图和等高线图。 曲线 x = t, y = sin t, z = sin( 2t) . 自己适当取 t 的范围。 七.程序 1.编写、保存、打开、修改、执行程序 编写新程序:击活菜单 File,选 New,单击 M—file,进入编辑区,可编写程序。 例 1:(演示:怎样编写、保存、打开、修改、执行程序?) 请按照规律 1+2=3,2+3=5,3+5=8,5+8=13 写出 30 个数作为一个数组 a=[1,2,3,5,8,13,……] . 简要说明:(1)保存新文件:File----Save, 文件名必须字母打头; (2)打开旧文件:File----Open----文件名,打开以后就可修改内容; (3)执行:Debug----Run . 2.关系运算,逻辑运算 (1)关系运算:(比较两个数) 共 6 种运算符: = == ~= 小于 大于 小于或等于 大于或等于 等于 不等于 练习: 12 22)=? (2<2)=?