Matlab初步(讲稿 上课方式:学生边听讲、边用机器练习。 调用Maab软件:在 windows平台上,双击“ Matlab”图标 说明:执行此命令,将进入“ Matlab工作区(命令区)”,在这里可以下达、执行 符合 Matlab语法的各种命令 矩阵;数组 矩阵 2 例:输入一个矩阵031,并用A代表此矩阵 -596 01 再输入一个矩阵 并用a代表此矩阵 121 命令为:A=[2,-18,0,3159,6]a=[0.,1-1,2,1] 说明:(1)输入上述命令后,敲回车键,机器才执行此命令 (2)你发现机器屏幕没反应,其实它早已接受并执行了你的命令,不信?请下 命令A就有反应了。再下命令a (3)清屏(把屏幕上的 Matlab工作区清理的干干净净) 屏幕空了,但你的那两个矩阵A、a还在机器中 (4)注意要点:中括号逗号分号字母大小写 注意:(1)A(ij)表示矩阵A的第i行、第j列交叉处的元素 练习:A A(3,1) (1,2) A(2,3) y=A(3,1)*a(2,2 (2)可修改个别元素 练习:a(2,2)=8 (3)可把矩阵的型号(即:行个数、列个数)放大 练习:A(2,4)=9 A a(3,5)=99 (4)一些特殊矩阵 m行n列的全0矩阵: zeros(m,n) 全1矩阵:onem,n) m行n列的单位矩阵:eye(m,n) 随机矩阵:rand(m,n) (随机矩阵的每个元素都是:开区间(0.1)内的均匀分布随机数) 练习: zeros(2,3)eros1,5) ones(4, 4) ones(2, 4) eye(3,3) 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)内的随机数 2.对矩阵作裁剪、拼接
裁剪:从矩阵中提取某些行、某些列(关键符号:) 如(练习):A(2,;)是A的第2行 A(:,1)是A的第1列 A(1:2,2:4)是A的第1、2行,与第2、3、4列交叉点元素 12345678 输入W=98765432,它的第2、3行,与第3、4、5、6列交 2345678 叉点元素是什么? W的第1、3、5、7列构成的矩阵是W(:,1:2:7)(起点1,步长2,终点7) W的第1、3行,第2、5、8列构成的矩阵是W(l: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列。 拼接:把若干个矩阵、数,拼凑、结合成一个矩阵 先做准备:把机器中全部的常量(包括矩阵、数)清除,命令为cear 再重新输入:A=2581,B=-1-4,a=[0-1 369 练习:左右拼接[AB][B,A][a8][8,a,7,6] 上下拼接[A;a][a;A][A:8,18,28;a 试一试:左右拼接[A,a][A,8] 上下拼接[AB A8,18] 0-3147 用这三个矩阵A、B、a,拼接出矩阵 2-5369 3.数组 1×n型矩阵(即:只有一行的矩阵),称为行向量,也称为数组。 例:用a1表示一个从0到18的全体偶数构成的数组 解:法一:格式为起点:步长:终点 命令为a1=0:2:18 法二:格式为 inspace(起点:终点:个数) 命令为al= linspace((1:18:10) (这两种格式的命令都表示等差数列) 练习:用a2表示一个从9到1的全体奇数构成的数组: 用a3表示一个从9到9的全体整数构成的数组;
裁剪:从矩阵中提取某些行、某些列 (关键符号 : ) 如(练习): 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(1:18:10) (这两种格式的命令都表示等差数列) 练习:用 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)+ \,/都应符合矩阵运算规则 (2)特别,数与数的运算:加 减-乘*除/ (3)数与矩阵的加减乘 练习:A2+A2AA-22÷AA*2 (4)AB读作A左除B,其本质是A1B AB读作B右除A,其本质是AB-1 主要用来解“矩阵方程”,如:AXB=C,其中A,B,C均为已知矩阵,X是 未知矩阵,则X=ACB-.命令是X=(AC/B 例:2 3,求Ⅹ=? 1-11 x1+0.1x2+0.2x3+0.3x4=5 例:解线性方程组x+x2+0.2x2+0.3x4=6 0.lx,+0.2x,+ x3+ 0.lx,+0.2x,+0.3x2+x,=8 2.数组运算 点乘 点乘方点左除 点右除 练习:a=[12,3,4]b={5,6,7,8]c=[5,6,7 bb.^2 3 b /bb \ a 通过练习,搞明白运算规则。 若两个矩阵A、B同型号,则A*BA^B合法 若两个矩阵A、B同型号,且B的元素都非零,则 A /BB.A合法 0-22 33,学习运算规 三.命令语句,函数 命令语句格式:变量=表达式
用第二种格式、用 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./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)同一行可以写多个语句,语句与语句之间用逗号或分号隔开 练习:(借用前面的ab) 一整行命令为a,b,c=ab’,d=a.*b,e=a./b再敲回车键执行命令 (3)若只要求机器执行命令、而不让机器把某个语句的执行结果显示在屏幕上,则 必须在该语句之后跟分号 练习:一整行命令为a,b;c=a’,d=a.b;e=a./;再敲回车键执行命令。 (4)关于变量名:你可以任意用一个字符串来代表一个变量名,但必须满足两条: 字母打头;避开 Matlab软件的专用符号。 几个专用符号:pi是圆周率丌 eps是最小浮点数(即:机器所能够处理的最小正数) Inf 是+∞ NaN是不定值 练习:pi (3-3)/(2*0) 介绍 format long与 format 2.函数 (1)普通函数(也称标量函数,简称函数) 常见的函数: sin cos tan exp log log10 sqrt abs round floor 四舍五入取整 负向取整 正向取整 ay f(a1)…f(a1n) 设∫(x)是普通函数,A= 则f(A)= f(an1)….f(am) 练习:A=/2 46, COS(A) tan(A) exp(A) 10g(A)logl0(A)sqrt(A) a=-6.01-4492.50-0.990.992.50449601 round(a) floor(a) ceil(a) (2)向量函数(也称数组函数) 常见的向量函数: length max min sum sort pro mean median 和 排序乘积平均值 中值 定义:设a是一个行向量、或列向量,则 length(a)是指向量a所包含的数的个数: (a)是指向量a中的最大数 sum(a)是指向量a中的全部数的和 sort(a)是把向量a中的数,按照从小到排序,得到一个新的向量
(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 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)奇,则是指向量sor(a)中位于中间的那个数; 若 length(a)偶,则是指向量 sort(a)中位于中间的那两个数的平均值 例:a=[4,3,-10,6],b 0 则sr(a)-1346,sorb 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是首先分别作用于每个列得到一个个数, 然后再把这些数写成一行,得到一个行向量。 定义完毕 621 543 例:A length(A) max(A)=6,8,5,5] min(A)=[0-5-4,1 m(A123415](A|20 32 2345 mean(A=2.4,060.8,3] ledian(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(标准正态分布:N(0.1)等等。 第二类矩阵函数:(用来计算矩阵的行列式、逆、秩、特征值等等) nk eig poly等等 行列式逆秩特征值特征多项式
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(标准正态分布:N(0.1))等等。 第二类矩阵函数:(用来计算矩阵的 行列式、逆、秩、特征值 等等) 如: det inv rank eig poly 等等。 行列式 逆 秩 特征值 特征多项式
l20 例:B=-134,计算B的行列式、逆、秩、特征值、特征多项式 (课堂上教师详细做。讲解poly:多项式系数(从高次到低次)构成的向量) 四.多项式 例:用 Matlab表示多项式P(x)=x-6x3+2x-8 解:P={1,6,0,2,8l Px=poly2str(P,x') 执行结果为Px=x4-6*x^3+2*x-8 说明:(1)一个多项式的本质核心是它的各次项系数,把这些系数写成一个行向量 (从高次到低次)称为该多项式的系数向量,系数向量完全决定了多项式, 上面第一个命令就是把系数向量记作变量P; (2)poly2strP,’x”)就是让机器根据系数向量P、以及符号'x'写出多项式 把此句改为PPP=poly2sr(P,t”),则执行结果为PPP=个46°t个3+2+t-8 习题:用Maab表示多项式Q(x)=1-2x+3x2-8x4+6x 例:已知6次多项式G(x)的6个根为 -0.380.544.770.3+0.410.3-0.4i 请写出G(x)的表达式 解:R=1-0.38,0.5,4477,0.3+0.40.3-0.41 P=poly(R);(根据根R计算出系数向量) PI=real(P);(因机器计算有误差,P带有虚部。根据数学知识,当虚根共轭成对 出现时,必为实系数多项式。指令rea(P)就是提取P的实部) Gx=polt2str(P1,’x 习题:5次多项式F(x)5个根为-2-1012,请写出G(x)的表达式 7次多项式H(x)的7个根为32,-18,1,±i,3±2i,请写出H(x)的表达式 小结:指令poly(4),若A为方阵,则产生A的特征多项式的系数; 若A为行向量,则产生以A为根的多项式的系数 例:(axm+a1xm+…+an)bx”+bx"+…+bn)=? 解:命令:a={0,a12…,anlb=[b,b,…,b 再命令:c= conv(a, b),(产生系数向量) Cx=pol2str(c,’x”) 完毕。 习题:(x4-6x3+2x-8)(1-2x+3x2-8x2+6x3)=? 指令 roots(P)的功能是:计算出以P为系数向量的多项式的根
例: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 为根的多项式的系数。 例: ( )( ) ? 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 为系数向量的多项式的根
例:(求t3-612-721+27的根) 指令 polyval(h,A)的功能是:计算出以P为系数向量的多项式在A的每个元素处的值 例:Q(x)=1-2x+3x2-8x++6x3 求 Q(2)Q(-4) -35-7 Q(-3)Q(5)Q(-7) 解:命令为P=16,-8,0,3,2,1l:B=12,-4,6;-3,5,7 l :polyval(PB)完毕 指令 polyram(P,A)的功能是:A是方阵,按照矩阵运算规则计算出矩阵多项式的值。 例:Q(x)=1-2x+3x2-8x4+6x3 A 35 求QA)=E-2A+3A2-8A+6 解:命令为P=168,0,3,-2,1:A={2,4;-3:5l; polyval(P,A)完毕。 五. Matlab工作区下的操作(初级) 清屏:cc 显示全部变量名:who(简显)或whos(详细显示) 显示某个变量AAA的内容:AAA或disp(AAA) 清除变量:(1)只清除变量AAA,则命令是 clear(AAA) (2)清除机器中的全部变量,则命令是 clear 数据的输出格式: format 短型 长型 format rat 分数型 六.图形功能 1.二维图形(命令词:plot) 例1:已知x取值为1,2,3,4,5,6 取值为0,0.5,0.7,1.1,0.9,0.2 请以ⅹ为横坐标、y为纵坐标,画出折线图 解:以下三个方法中的任意一个都可以,其结果完全一样 (1)x=|1,2,3,45,6l;y=0,0.5,0.7,11,0.9,0.2l;plot(xy) (2)x=1:6;y=|0,0.5,0.7,11,0.9,0.2;plot(xy) (3)y=|0,0.5,0.7,1.1,0.9,0.2;plot(y) 例2:画出正弦曲线y=sn(x)在区间[0,4x]上的图形。 练习:y=x,y=x,y=e,y=hx,y=√-x2.画图 图多线:(在同一个坐标图中画两条以上的曲线) 法一:例1:x=0pi/102*piyl=sin(x)y2=cos(x);plot(xy1,xy2)
例:(求 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 请以 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)
1 2: X0: pi/10: 2*pi; y1=sin(x); 2=cos(x); y3=(sin(x)+cos(x))/2: plot(x, yl, x, y2, x, y3) 例3:在同一图中画四条线,横坐标范围是[0,2丌],函数分别是 1+sin x 2x(2T-x) y≡0.6 xl=0pi/10:2*piy1=(l+sin(x)/2x2=[0,2*p]y2=x2/(2*p y3=x1.*(2*pi-xl)/p2y4=[0.6,0.6 plot(xl, y1, x2, y2, xl, y3, x2 y4) 法二:重做例3:只需把plot(xy1,x2y2,xly3,x2y4)改成 hold on, plot(xl, y1),plot(xl y3)plot(x2, y2), plot(x2, y4), hold off 习题:在同一图中画四条线,横坐标范围是[1,2丌+1],函数分别是 y=cosx,y=1--2(x-12x+1-x),y=0.4,y 加“坐标网格” 法一:在plot……)之后紧跟grid 演示:plot(xl,yl,x2.y2,x1,y3,x2y4)grid Ea hold on, plot(x1, y1), plot(xl, y3), plot(x2, y 2)plot(x2, y4 ),grid, hold off 法二:事后补加(先画好没有网格的图,再补加网格) 演示:先命令plot(x1,y1),再命令grid 加“标记”:(1)给图加标题:tite(“****”) (2)给坐标轴加标记:横轴:xabe(“***”) 纵轴: vlabel(“**事**”) (3)给曲线加标记:text(abb***) 说明:这四个命令的用法与前面grid相同(紧跟plo(…),或事后补加) 红色符号是本质(包括:小括号、逗号、单引号),不可改变 本***是你准备加注的字符,由你自己决定; 你准备把“曲线标记”放在哪个位置?答:a是横坐标,bb是纵坐标 演示:略写,教师在课堂机器上演示 对坐标系进行控制 axis equal 使得横轴与纵轴的单位长度相同 使得图呈现正方形; axis(ax. obx, aay, bby)实现你的愿望:使得横坐标从ax到bx、纵坐标从ay 到bby 演示:略写,教师在课堂机器上演示。 多幅图形:在同一个画面上建立多个坐标系,每个坐标系中各自画图、互不干扰 关键词: subplot(mnp),把画面分割成m×n个图形区域,p代表第几个图 例如:借用前面的x1,x2,yl,y2,y3,y4, subplot(1, 4, 1), plot(xl,yl) subplot(1, 4, 2), plot(x2, y2),grid
例 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)给图加标题: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(xl, y3),grid 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, sin x(I+ cos x), tan x 2.三维图形 先不动脑筋,看别人做的一个三维曲面图,感受一下 Matlab作图效果 例:画出曲面z=f(x,y)=x2 7.5≤x≤7.5 7.5≤y≤7.5 Af: x=-75: 0.5: 7.5; y=x; X, YI=meshgrid(x, y) R=sqrt(X.2+Y.2)+eps: Z=sin(). /R: mesh(X,Y, 4) (1)带网格的曲面图(关键词:mesh) 例如:画曲面z=f(x,y)=√1- -0.5≤x≤0.5 -0.5≤y≤0.5 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, 4) (画图) (2)曲面的等高线图(关键词: contour3) 续上题:把mesh(X,Y,Z)改为 contour3(X,Y,Z5) (其中,5是准备画5条等高线) (3)空间三维曲线图(关键词:pot3) 例:螺旋线的参数方程为:x=sint, coSt. 2=t 试在范围-20≤t≤20内,画出该曲线。 t=-20: pi/30: 20; sin(t);y=cos(t); zt;plot(x,y, z) 习题:曲面z=x2+y2,-2≤x,y≤2,分别画网格图和等高线图。 曲线x=t,y=snt,z=sn(2n).自己适当取t的范围。 七.程序
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;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.编写、保存、打开、修改、执行程序 编写新程序:击活菜单li,选N,单击M-ilk,进入编辑区,可编写程序 例1:(演示:怎样编写、保存、打开、修改、执行程序?) 请按照规律1+2=3,2+3=5,3+5=8,5+8=13写出30个数作为一个数组 简要说明:(1)保存新文件:Fle--Save,文件名必须字母打头 (2)打开旧文件:Fle-Open--文件名,打开以后就可修改内容; (3)执行: Debug---Run 2.关系运算,逻辑运算 (1)关系运算:(比较两个数) 共6种运算符:2 (2=3,d=a=3,e=a4)d=a>=3)&(b 若关系表达式的值是1,则执行语句1 若关系表达式的值是0,则不执行语句1,而去 执行end后面的语句。 格式二:if若关系表达式的值是1,则执行语句1,再跳到cnd后面 若关系表达式的值是0,则不执行语句1,而执行语句2 else 句
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=3, d=a==3, e=a4) d=(a>=3)&(b 若 关系表达式 的值是 1,则执行语句 1; 若 关系表达式 的值是 0,则不执行语句 1,而去 end 执行 end 后面的语句。 格式二: if 若 关系表达式的值是 1,则执行语句 1,再跳到 end 后面; 若 关系表达式的值是 0,则不执行语句 1,而执行语句 2 else