大学数学实验 欢迎进入 MATLAB 世界 作者 薛长虹 数学系 Email 地址: chxue@cuit.edu.cn 作者 薛长虹 数学系 Email 地址: chxue@cuit.edu.cn 主页:http://jwc.cuit.edu.cn/yg/chxue QQ: 315165 欢迎进入 MATLAB 世界
目录 MATLAB简介(4) MATLAB发展史(5) MATLAB主要功能(6) Matla主包工具箱(7) matlab安装启动(8) 工作空间介绍(10) 命令行的编辑(24) 在工作空间计算(28) M文件编辑(32) 条件语句(34) 循环结构(36) 空间解析几何实验(39) 绘图基本线型(43) 曲线的绘制(45) 曲面的绘制(59) 线性代数实验(64) 矩阵的操作(67) 2018/11/29
目录 矩阵的运算(72) 求解方程组(74) 二次型(76) 高等数学实验(77) 求一元函数极限(78) 一元函数微分(80) 泰勒展开(82) 一元函数极值(84) 一元函数积分(85) 多元函数微分(86) 多元函数极值(87) 重积分(91) 微分方程(92) 函数计算器(93) 结束语(94) 2018/11/29
数 学 实 验 简 介 大学数学实验是大学数学教学改革的内容。该课程的开设使得学生学会使用计算机中的数学软件去作计算和研究工作,而不再是花大量的时间去钻研计算技巧。 完成本书内容的学习大约需30~50学时。1/4学时的多媒体教学,1/6学时的上机实验。 本讲座放在教师主页《长虹雪苑》中的‘长虹教室’网页中,网页地址为:http://jwc.cuit.edu.cn/Yg/chxue。 2018/11/29
MATLAB简介 美国 Mathworks公司推出了MATLAB以其强大的功能和易用性受到越来越多的科技工作者的欢迎. 2018/11/29
MATLAB的发展史 MATLAB的产生是与数学计算紧密联系在一起的。70年代中期,美国的穆勒教授在给学生开线性代数课时,为了让学生能使用子程序库又不至于在编程上花费过多的时间,便为学生编写了使用子程序的接口程序。他将这个接口程序取名为MATLAB,意为“矩阵实验室”。 80年代初他们又采用c语言编写了MATLAB的核心。 目前MATLAB巳成为国际公认的最优秀的数学应用软件之一 2018/11/29
MATLAB的主要功能和特性 主要特点: 主要功能: 1.数值计算功能 2.符号计算功能 3.数据分析和可视 化功能 4.文字处理功能 1.功能强大 含有40多个应用于不同领域的工具箱. 2.界面有好 其指令表达方式与习惯上的数学表达式非常接近, 3.扩展性强 用户可自由地开发自己的应用程序 主要功能: 1.数值计算功能 2.符号计算功能 3.数据分析和可视 化功能 4.文字处理功能 5.SIMULINK动态仿真功能 2018/11/29
MATLAB主包和工具箱 主要工具箱有: MATLAB由主包和各种工具箱组成.主包是核心,工具箱是扩展的有专门功能的函数. 1.控制系统工具箱 control 2.小波工具箱 wavelet 3.模糊逻辑工具箱 fuzzy 4.神经网络工具箱 nnet 5.通信工具箱 comm 6.线性矩阵不等式工具箱lmi 7.图像处理工具箱 images 8.优化工具箱 optim 9.偏微分方程工具箱 pde 10.财政金融工具箱 finance 11.模型预测控制工具箱mpc 12.样条工具箱 splines 13.统计工具箱 stats 14.信号处理工具箱 signal 2018/11/29
MATLAB的安装与启动 MATLAB 5.x 建议对系统要求: Windows98操作系统 24速以上光驱 奔腾II以上处理器 16位以上显卡 128MB以上内存 完全安装需要640MB MATLAB 的安装: 将装有MATLAB 光盘放入光驱, 在MATLAB 目录下直接运行“Setup.exe”程序,根据安装对话窗口提示进行安装. 2018/11/29
MATLAB入门 1.如何进入 matlab软件: 在桌面上双击matlab图标,即可进入软件 2018/11/29 例:输入一个矩阵a,求a的转置,求a的逆等等. 随机生成矩阵:A=fix(15*rand(n,n)) 2018/11/29
MATLAB入门 进入软件开始画面 2018/11/29
MATLAB工作空间介绍 2018/11/29
MATLAB工作空间介绍 2. 工作空间菜单命令介绍: File(文件) 菜单: 1. “New” 有三个选项: 2. 工作空间菜单命令介绍: File(文件) 菜单: 1. “New” 有三个选项: “M-file”新建一个.m文件,打开M文件编辑器。 “figure”新建一个图形窗口。 “Model”新建一个simulink模型窗口 2018/11/29
MATLAB工作空间介绍 2.“Open” 打开对话框,列出文件目录,选定已有 的文件然后单击“打开”。 3.“Open Selection” 在工作空间给出M文件名,然后选择该选项,可打开文件。 4.“Run Script” 运行脚本文件。 5.“Load Workspace” 下载原已保存的数据。 6.“Save Workspace” 保存工作空间的变量到 *.mat文件。 7.“Show Workspace” 打开工作空间浏览器。 2018/11/29
MATLAB工作空间介绍 8. “Show Graphics Property Editor” 打开图形属性编辑器。允许交互修改图形对象属性。 9. “Show GUI Layout Tool” 显示图形用户界面设计向导。 10. “Set Path” 打开路径浏览器 11. “Preferences” 打开参数设置对话框. 包括: 设置数据格式卡片 字体大小选项卡片 背景颜色选项、 字体颜色选项卡片 2018/11/29
数据格式选项卡片 2018/11/29
MATLAB工作空间介绍 数据格式 解释 例 a= 1/3 Short 短格式 0.3333 Long 长格式 0.33333333333333 Hex 十六进制 3fd5555555555555 Bank 金融格式 0.33 Plus +格式 + Short E 短指数方式 3.3333E-001 Long E 长指数格式 3.33333333333333e-001 Short G 短紧缩格式 0.3333 Long G 长紧缩格式 0.333333333333333 Rational 有理格式 1/3 Loose 稀疏格式 0.3333 2018/11/29
字体颜色、大小选项卡片 2018/11/29
MATLAB工作空间介绍 12. “Print Setup” 打印设置 13. “Print” 对屏幕内容打印. 14. “Print Selection” 有选择打印. 15. “Exit Matlab” 退出MATLAB. Edit(编辑)菜单: Undo: 撤消上一次的操作。 Cut: 将选中内容剪切到剪切版上。 Copy: 复制选中的内容。 Paste: 将剪贴板上的内容粘贴下来 2018/11/29
MATLAB工作空间介绍 Clear: 清除工作空间指定变量 Select All: 全选命令窗口所有内容 Clear Session: 清除命令窗口里所有内容 View菜单:控制是否显示工具栏 Windows菜单:在打开的窗口之间切换 Help菜单: 目录帮助.提示帮助.帮助台面... 2018/11/29
MATLAB工作空间介绍 初学者常用的几个命令: 1. help命令 查询函数用法: help + 函数名 打开帮助窗口:helpwin 2. demo命令 浏览例子演示: demo 语言示例:在打开的窗口内单击matlab之下的Matrices,然后选择右下方窗口中的例子,双击打开该例程. 2018/11/29
MATLAB帮助窗口 2018/11/29
MATLAB演示窗口 键入demo 2018/11/29
MATLAB 演示画面 2018/11/29
命令行的编辑与运行 1.有关命令行环境的一些操作: (1) clc 擦去一页命令窗口,光标回屏幕左上角 (2) clear 从工作空间清除所有变量 (3) clf 清除图形窗口内容 (4) who 列出当前工作空间中的变量 (5) whos 列出当前工作空间中的变量及信息 或用工具栏上的 Workspace 浏览器 (6) delete <文件名> 从磁盘删除指定文件 (7) whech <文件名> 查找指定文件的路径 2018/11/29
命令行的编辑与运行 ( 9 ) clear all 从工作空间清除所有变量和函数 (10) help <命令名> 查询所列命令的帮助信息 (11) save name 保存工作空间变量到文件 name.mat (12) save name x y 保存工作空间变量 x y到文件 name.mat (13) load name 下载‘name’文件中的所有变量到工作空间 (14) load name x y 下载‘name’文件中的变量x y到工作空间 (15) diary name1.m 保存工作空间一段文本到文件 name1.m … diary off (16) type name.m 在工作空间查看name.m文件内容 (17) what 列出当前目录下的m文件和mat文件 2018/11/29
命令行的编辑与运行 ↑ Ctrl+p 调用上一次的命令 ↓ Ctrl+n 调用下一行的命令 ← Ctrl+b 退后一格 → Ctrl+f 前移一格 Ctrl + ← Ctrl+r 向右移一个单词 Ctrl + → Ctrl+l 向左移一个单词 2018/11/29
命令行的编辑与运行 Home Ctrl+a 光标移到行首 End Ctrl+e 光标移到行尾 Esc Ctrl+u 清除一行 Del Ctrl+d 清除光标后字符 Backspace Ctrl+h 清除光标前字符 Ctrl+k 清除光标至行尾字 Ctrl+c 中断程序运行 2018/11/29
常量与变量 MATLAB中的数采用十进制表示。 例:5 -87 0.23 1.2e-4 2.6e42 5+2i 2.6-3.5i 在缺省情况下,当结果是整数,MATLAB将它作为整数显示;当结果是实数,MATLAB以小数点后4位的精度近似显示。如果结果中的有效数字超出了这一范围,MATLAB以科学计数法来显示结果。 变量名以字母开头,后面可以是字母、数字或下划线。变量名最多不超过19个字符,第19个字符之后的字符将被忽略。变量名区分字母大小写。 2018/11/29
常量与变量 系统启动时定义的变量: 变量名 含义 ans 用于结果的缺省变量名 eps 容差变量,计算机的最小数,一般为2-52 变量名 含义 ans 用于结果的缺省变量名 eps 容差变量,计算机的最小数,一般为2-52 pi 圆周率π的近似值3.14159265358979 inf 无穷大,如1/0 NaN 不定量,如0/0 i和j 虚数单位 2018/11/29
常 用 函 数 函数名 含义 abs ( ) 绝对值函数 acos ( ) 反余弦函数 acosh ( ) 反双曲余弦函数 函数名 含义 abs ( ) 绝对值函数 acos ( ) 反余弦函数 acosh ( ) 反双曲余弦函数 acot ( ) 反余切函数 acoth ( ) 反双曲余切函数 acsc ( ) 反余割函数 acsch ( ) 反双曲余割函数 2018/11/29
常 用 函 数 asec ( ) 反正割函数 asech ( ) 反双曲正割函数 asin ( ) 反正弦函数 asinh ( ) 反双曲正弦函数 atan ( ) 反正切函数 ceil ( ) 对+∞方向取整函数 cos ( ) 余弦函数 cosh ( ) 双曲余弦函数 2018/11/29
常 用 函 数 cot ( ) 余切函数 coth ( ) 双曲余切函数 csc ( ) 余割函数 csch ( ) 双曲余割函数 exp ( ) 指数函数 fix ( ) 对零方向取整 log ( ) 自然对数函数 log10 ( ) 常用对数函数 2018/11/29
常 用 函 数 rem ( ) 除法求余 sign ( ) 符号函数 sin ( ) 正弦函数 sinh ( ) 双曲正弦函数 sqrt ( ) 平方根函数 tan ( ) 正切函数 tanh ( ) 双曲正切函数 2018/11/29
注 释 和 标 点 1. 百分号后的所有文字为注释,不参与运算。 例:syms x y %定义符号变量x ,y 1. 百分号后的所有文字为注释,不参与运算。 例:syms x y %定义符号变量x ,y 2. 多条命令可以放在同一行,用逗号或分号分隔,逗号表示要显示该语句运行结果,分号表示不显示运行结果。 例:x=[2,3];y=[4,5];z1=x+y, z2=x’*y 结果:z1 = 6 8 z2 = 8 10 12 15 2018/11/29
注 释 和 标 点 f=3*x^6+4*x^5-8*x^4+... 7*x^3+8*x^2-3*x+35 1. 一条语句也可以写在多行,用三个点表示该语句未完,续在下一行。 例: f=3*x^6+4*x^5-8*x^4+... 7*x^3+8*x^2-3*x+35 但注意变量名不能被两行分割,注释语句不能续行。 2018/11/29
工作空间计算举例 [例1]已知A= 求A’,A的行列式,A的逆. 输出: A= 1 5 2 程序: 3 6 4 程序: 3 6 4 A=[1 5 2;3 6 4;6 8 9] 6 8 9 a1=A’ a1= 1 3 6 a2=det(A) 5 6 8 2 4 9 a2= -17 2018/11/29
工作空间计算举例 A=[1 1 -1;2 4 5;1 -3 -4] b=[12;6;10] X=A\b [例2]已知:方程组: 输入命令: 输出方程组的解: X= 5.4545 3.0909 -3.4545 2018/11/29
M-文 件 的 编 辑 与 运 行 1.建立新文件: 在命令窗口中选择命令File/New/M-file,系统打开编辑器,或点击工具栏上的白页(如图),或用命令edit 。 点击此处 2018/11/29
M-文 件 的 编 辑 窗 口 2018/11/29
M 文 件 编 辑 与 运 行 2. 编辑: 3. 保存: 4. 运行: 按MATLAB语法规则编辑MATLAB程序 编辑后,按保存按钮或选择命令菜单中File/Save As,系统弹出一个Save框,在框内键入‘文件名.m’ 4. 运行: 到工作空间,键入‘文件名’后按回车,也可在编辑窗口选定要运行的程序段,按F9再到工作空间查看结果。 2018/11/29
编程入门 之条件语句 1(1)简单条件语句: (3)多条件条件语句: if (条件式) if (条件式1) 语句组 语句组1 1(1)简单条件语句: (3)多条件条件语句: if (条件式) if (条件式1) 语句组 语句组1 end elseif (条件式2) (2)多选择条件语句: 语句组2 if (条件式) elseif (条件式3) 语句组 1 语句组3 else ... ... 语句组 2 end end 2018/11/29
编程入门 之条件语句 %屏幕提示x= ,由键盘输入值赋给x if x<0 y=x^3; else y=5*x^2; end y 程序:x=input (‘x=’) %屏幕提示x= ,由键盘输入值赋给x if x<0 y=x^3; else y=5*x^2; end y 2018/11/29
编程入门 之条件语句举例 例:输入一个x的值, 输出符号函数y的值 在 M-文件中输入: x = input (‘x =‘) if x<0 y=-1 elseif x==0 y=0 else y=1 end 2018/11/29
编程入门 之循环语句 1.第一类循环语句结构: for 循环变量=初值: 步长: 终值 循环体语句组 end 2.第二类循环语句结构: while (条件式) 2018/11/29
编程入门 之循环语句举例 例4:xu4.m生成一个6阶矩阵,使其主对角线上元素皆为1,与主对角线相邻元素皆为2,其余皆为0。 程序:for i=1:6 for j=1:6 if i= =j a(i,j)=1; elseif abs(i-j)= =1 a(i,j)=2; else a(i,j)=0; end end end a 2018/11/29
编程入门 之循环语句举例 例6:求自然数的前n项和 M-文件中的程序: n=input(‘n=‘) sum=0; k=1; while k<=n sum=sum+k; k=k+1; end sum 运行: n=100 结果: Sum=5050 2018/11/29
空间解析几何实验 一、建立空间直角坐标系: 程序: x=0;y=0;z=0; plot3(x,y,z) xlabel('x轴') ylabel('y轴') zlabel('z轴') 2018/11/29
空间解析几何实验 二、空间两点间的距离 程序: M1=[1,2,3] M2=[4 ,5,6] d=sqrt((4-1)^2+(5-2)^2+(6-3)^2) 结果: d=5.1962 2018/11/29
几何实验之向量的创建 一、向量的创建: 1.随机创建法: 程序: a = rand (1,6) %创建了一行6个元素的行向量。 b = rand (6,1) %创建了一列6个元素的列向量。 结果: a = 0.9501 0.2311 0.6068 0.4860 0.8913 0.7621 2018/11/29
几何实验之向量的创建 2. 冒号创建法: 程序: c = 1:2:9 %创建了一个初值为1,步长为2,终值为9的行向量。 2. 冒号创建法: 程序: c = 1:2:9 %创建了一个初值为1,步长为2,终值为9的行向量。 结果:c = 1 3 5 7 9 2018/11/29
几何实验之向量的创建 3.等分插值创建法: 程序: d = linspace(0,2*pi,10)%创建了在区间[0,2π] 上等分的10 个插值点构成的向量。 结果:d = Columns 1 through 7 (表示第1列到第7列) 0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 Columns 8 through 10 4.8869 5.5851 6.2832 2018/11/29
几何实验之向量的创建 4. 已知向量坐标的元素输入法: 例:已知向量a=(3 4 2 6 7 3 7) 4. 已知向量坐标的元素输入法: 例:已知向量a=(3 4 2 6 7 3 7) 程序:a=[3 4 2 6 7 3 7] 结果:a= 3 4 2 6 7 3 7 2018/11/29
空间解析几何之向量运算 二、向量的运算命令: 向量a与b的加法:a + b 向量a与b的减法:a – b 数k乘以向量a: k * a 向量a的模:norm(a) 向量a与b的数量积:dot (a,b)或 a * b ’ 向量a与b的向量积:cross (a,b) (只能作三维的) 向量的混合积: dot(cross(a,b),c) 向量a与b的对应元素相乘:a . * b 向量a与b的对应元素作除:a . / b 2018/11/29
空间解析几何之向量运算 例:已知 a = { 3,-1,-2} , b = {1,2,-1} ,求 a·b 及a×b ; 程序: 1. A1=dot(a,b) a=[3 –1 –2 ] ; A2=cross(a,b) b=[1 2 –1]; 2. A3=dot(-2*a,3*b) A4=cross(a,2*b) 3. A5=dot(a,b)/(norm(a)*norm(b)) 2018/11/29
函 数 定 义 方 法 一、符号函数定义法: syms x y z %定义了符号变量: x y z f = ‘ x^2+sin(x)^2-8 ’ %定义了函数: x=2*pi %给自变量赋值 eval( f ) %求函数值: f (2π) isstr(f ) %检查变量是字符还是数值: f是 字符时为1,f是数字时为0。 2018/11/29
函 数 定 义 方 法 二、m文件定义法: 建立M文件来定义函数。此时文件名必须与其定义的函数名一致。定义函数M文件通常由以下几个部分组成: l 函数定义行 l H1行 l 函数帮助文本 l 函数体 l 注释 2018/11/29
函 数 定 义 方 法 例1:求最小公倍函数 lcm function c = lcm(a,b) %LCM Least common multiple. % LCM(A,B) is the least common multiple of corresponding elements of if any(round(a(:)) ~= a(:) | round(b(:)) ~= b(:) | a(:) < 1 | b(:) < 1) error('Input arguments must contain positive integers.'); end c = a.*(b./gcd(a,b)); 2018/11/29
调 用 函 数 例:求(234,456)的最小公倍数。 程序: a=234; b=456; c=lcm(a,b) 结果: c = 17784 2018/11/29
空间解析几何之曲线绘制 三、平面曲线绘制 (一)数值绘图法: 首先定义自变量X的取值向量 再定义函数Y的取值向量 用plot(x,y)命令给出平面曲线图。 在绘图参数中可以给出绘制图形的线型和颜色的参数。例:plot(x,y,’r’,’*’) 就是用红色的****线型绘图。 2018/11/29
绘图基本线型和颜色 符号 颜色 符号 线型 y 黄色 . 点 m 紫红 。 圆圈 c 青色 x x 标记 r 红色 + 加号 符号 颜色 符号 线型 y 黄色 . 点 m 紫红 。 圆圈 c 青色 x x 标记 r 红色 + 加号 g 绿色 * 星号 b 蓝色 - 实线 w 白色 : 点线 k 黑色 -. 点划线 -- 虚线 2018/11/29
绘图的基本命令 w=[f;g];plot(x,w); 画多个函数曲线图 xlabel(‘x轴’) x轴加标志 ylabel(‘y轴’) y轴加标志 title(‘f曲线图’) 加图名 hold on 保持图形 Hold off 关闭保持图形功能 clf 删除图形 subplot(m,n,p) 分块绘图 2018/11/29
空间解析几何之曲线绘制 例1:画出以下平面曲线图: Y=x2 x[-2,2] (蓝色实线型绘图 默认) Y=sin(x) x[-2,2 ] (红色*线型绘图) 程序: x=-2:0.1:2; 2. x= linspace(-2*pi,2*pi,30); Y=x.^2; Y= sin(x); plot(x,y) plot(x,y,’r*’) hold on hold off 2018/11/29
空间解析几何之曲线绘制 2018/11/29
空间解析几何之曲线绘制 例2:在图形名为“平面曲线图”的图中建立坐标系,并画出如下函数图形: y=ex+20 x [0,5] (蓝色实线型绘图) z=2x3+3x+1 x [0,5] (红色*线型绘图) w=100cos(x) x [0,5] (紫色+线型绘图) 程序: x=linspace(0,5,30); title(‘平面曲线图’) y=exp(x)+20; xlabel(‘x轴’) z=2*x.^3+3*x+1; ylabel(‘y轴’) w=100*cos(x); plot(x,y,x,z,’r*’,x,w,’m+’) 2018/11/29
空间解析几何之曲线绘制 2018/11/29
空间解析几何之曲线绘制 例3:分块画出如下函数图形: y1=ln(5x) x [0,2] (蓝色实线型绘图) y2=2x4 x [0,2] (红色*线型绘图) y3=4*cos(x) x [0,2] (紫色+线型绘图) y4=sin(x) x [0,2] (青色o线型绘图) 并在各图形中标出函数 2018/11/29
空间解析几何之曲线绘制 例3程序: x=linspace(1,8,30); plot(x,y2,'r*') y1=log(5*x); y2=2*x.^4; y3=4*cos(x); y4=sin(x); subplot(2,2,1) plot(x,y1) title('ln(5x)') subplot(2,2,2) plot(x,y2,'r*') title('2x^4') subplot(2,2,3) plot(x,y3,'m+') title('4*cos(x)') subplot(2,2,4) plot(x,y4,'go') title('sin(x)') 2018/11/29
空间解析几何之曲线绘制 2018/11/29
空间解析几何之曲线绘制 (二) 定义一元函数绘二维曲线图 首先定义符号变量:syms x y t 再定义函数:f=sin(x) 函数绘图命令1: fplot(f,[a,b]) 函数绘图命令2: ezplot(f) 函数绘图命令3: ezplot(f,[a,b]) 2018/11/29
空间解析几何之曲线绘制 例4:画幂函数 k=1, 2 , 3 , 4 的图形 程序: syms x t hold on y1=‘x^1’ ezplot(y3,[-1,1]) y2=‘x^2’ hold on y3=‘x^3’ ezplot(y4,[-1,1]) y4=‘x^4’ hold off ezplot(y1,[-1,1]) hold on ezplot(y2,[-1,1]) 2018/11/29
空间解析几何之曲线绘制 2018/11/29
空间解析几何之曲线绘制 例5: 分块画曲线 与 y = sin(1/x) 程序:syms x y1=exp(x) y2=sin(1/x) subplot(1,2,1) ezplot(y1,[-1,1]) title(‘y1=exp(x)’) subplot(1,2,2) ezplot(y2,[-1,1]) title(‘y2=sin(1/x)’) 2018/11/29
空间解析几何之曲线绘制 2018/11/29
空间解析几何之曲线绘制 四、空间曲线绘制 定义参数向量t; 定义空间曲线的参数方程: x=x(t); y=y(t); z=z(t); 用函数 Plot3(x(t),y(t),z(t)) 绘图 例6: 画空间螺旋线 x = sin(t) y = cos(t) z = t 程序: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) xlabel(‘x’),ylabel(‘y’) 2018/11/29
空间解析几何之曲线绘制 2018/11/29
空间解析几何之空间曲面 五、空间曲面的绘制: 建立由自变量x 向量和y向量构成的网格点 定义曲面函数: z=z(x,y) 用绘图函数surf(x,y,z) 绘制曲面图形。 例7: 画空间曲面旋转抛物面 程序: [x,y]=meshgrid(-5:0.5:5); z=x.^2+y.^2; surf(x,y,z); title(‘旋转抛物面图’); shading interp axis off 2018/11/29
空间解析几何之空间曲面 2018/11/29
空间解析几何之空间曲面 绘球面程序: sphere(30) axis equal shading intern 2018/11/29
空间解析几何之空间曲面 绘双曲抛物面程序: [x,y]= meshgrid(-20:0.5:20); z1=x.*y; surf(x,y,z1); title('双曲抛物面'); shading interp axis off 2018/11/29
空间解析几何之空间曲面 绘圆锥面程序: [x,y]= meshgrid(-20:0.5:20); z2=sqrt(x.^2+y.^2); surf(x,y,z2); title('锥面'); shading interp axis off 2018/11/29
图形的修饰 [x,y]=meshgrid(-8:0.5:8); r=sqrt(x.^2+y.^2)+eps; z=sin(r)./r; surf(x,y,z) 2018/11/29
图形的修饰 Shading flat %去掉各片连接处的线条,平 滑当前图形颜色。 2018/11/29
图形的修饰 shading interp %去掉连接线条,在各片之间使用颜色插值,使得片与片之间以及片内部的颜色过渡都很平滑。 2018/11/29
统计图形绘制 一、条形图 bar(x,y) %竖直条形图,其中x是横坐标向量。y是向量或矩阵。 barh(x,y) %水平条形图 2018/11/29
统计图形绘制 例:作竖直条形图: 程序: x=1:12; y=[2 3.5 5 7 6 5 7.5 8 4.3 3 2.1 1.2]; bar(x,y) 2018/11/29
统计图形绘制 2018/11/29
统计图形绘制 二、直方图 hist (y,m) %在直角坐标系中建立直方图,其中y 是向量,m是设置分段的个数。 rose (y,m) %在极坐标系中建立直方图 例:由函数randn产生具有正态分布的随机数来绘制直方图 程序: y1=randn(10000,1) hist(y1,20) 2018/11/29
统计图形绘制 2018/11/29
统计图形绘制 三、等高线图 contour (z) %直接绘制z矩阵的等高线。 contour (x,y,z) %用x和y指定等高线的x、y坐标。 contour (z,n) %用n指定绘制等高线的线 contourf (z,n) %绘制填充的二维等高线图。 contour3 (z,n) %绘制三维等高线。 2018/11/29
统计图形绘制 例 :画二维等高线 程序: [x,y,z]=peaks(30); subplot(2,2,1) surf(x,y,z) 例 :画二维等高线 程序: [x,y,z]=peaks(30); subplot(2,2,1) surf(x,y,z) subplot(2,2,2) contour(x,y,z,15) subplot(2,2,3) contour3(z,20) subplot(2,2,4) [c,h]=contour(z); 2018/11/29
统计图形绘制 2018/11/29
统计图形绘制 四、饼形图 X %统计数据 pie (x) %二维饼形图。 pie3 (x) %三维饼形图 2018/11/29
统计图形绘制 例:下面的命令用于建立某公司四个季度生产额的二维饼形图,并把第三季度的饼形图块移出一些。 程序: sc=[100 170 380 250] subplot(1,2,1) pie(sc,[0 1 0 0]) subplot(1,2,2) pie3(sc,[0 1 0 0]) 2018/11/29
统计图形绘制 2018/11/29
统计图形绘制 五、离散数据图 stem (x,y) %绘制二维离散图。 stem3 (x,y) %绘制三维离散图。 stairs (x,y) %绘制类似楼梯形状的步进图形。 2018/11/29
统计图形绘制 例:绘制离散数据图 程序: x=0:0.1:2*pi; subplot(1,3,1) stem(x,sin(x)) stem3(exp(x),x,exp(x),’filled’) x=0:0.3:2*pi; subplot(1,3,3) stairs(x,sin(x)) 2018/11/29
统计图形绘制 2018/11/29
统计图形绘制 1. 二维动态轨线图: 调用格式:comet(x,y,p) % 平面曲线y=y(x) 其中p为尾长参数,缺省值为0.1 1. 二维动态轨线图: 调用格式:comet(x,y,p) % 平面曲线y=y(x) 其中p为尾长参数,缺省值为0.1 例1: t=-pi:pi/200:pi; comet(t,tan(sin(t))-sin(tan(t))) 2018/11/29
统计图形绘制 2018/11/29
统计图形绘制 1. 三维动态轨线绘图 调用格式:comet3(x,y,z,p) %空间曲线 x=x(t),y=y(t),z=z(t) 例2: 1. 三维动态轨线绘图 调用格式:comet3(x,y,z,p) %空间曲线 x=x(t),y=y(t),z=z(t) 例2: t=0:.05:100; x=t;y=sin(t);z=sin(2*t); comet3(x,y,z) 2018/11/29
统计图形绘制 2018/11/29
线性代数实验之矩阵创建 一. 矩阵的创建 1.通过元素列表输入 例:A=[1 2 3;4 5 6;7 8 9] 例:B =[ 1 2 3 4 5 6 7 8 9 0 5 4 3 2 1 ] 2.通过外部数据加载 例:一个全由数据组成的文本文件A.mat加载时在命令窗口敲: load A.mat 2018/11/29
线性代数实验之矩阵创建 3.在M文件中创建矩阵 例:打开一个新的M文件输入:b=[2 4 6 ;3 5 7]存盘取名为:Li1.m然后在命令空间敲Li1则显示出矩阵b. 4. 通过函数产生矩阵 例: zeros(n,m) 零阵 ones(n,m) 壹阵 rand((n,m) 随机阵 randn(n,m) 正态随机 magic(n) 幻方阵 vander(c) 由向量C生成范德蒙矩阵 2018/11/29
线性代数实验之矩阵创建 例:程序:A=[2 4 6 8;4 5 7 3;2 4 6 7;8 5 4 2] 结果: A = 2 4 6 8 2 4 6 8 4 5 7 3 2 4 6 7 8 5 4 2 2018/11/29
线性代数实验之矩阵创建 例:作3乘4阶零矩阵: 程序:z=zeros(3,4) 结果: z = 0 0 0 0 2018/11/29
线性代数实验之矩阵创建 例:作4阶全1方阵。 程序 :on=ones(4) 结果: on = 1 1 1 1 2018/11/29
线性代数实验之矩阵创建 例:作5阶随机方阵。 程序:r1=rand(5) 结果: r1 = 0.9218 0.9169 0.8132 0.6038 0.4451 0.7382 0.4103 0.0099 0.2722 0.9318 0.1763 0.8936 0.1389 0.1988 0.4660 0.4057 0.0579 0.2028 0.0153 0.4186 0.9355 0.3529 0.1987 0.7468 0.8462 注:随机数在0—1之间。 2018/11/29
线性代数实验之矩阵创建 例:若构造两位以内整数随机方阵,就乘一个两位数, 再向零取整。 程序:r2=fix(30*rand(5)) 结果: 例:若构造两位以内整数随机方阵,就乘一个两位数, 再向零取整。 程序:r2=fix(30*rand(5)) 结果: r2 = 28 22 18 12 1 6 13 23 28 10 18 0 27 27 24 14 24 22 12 0 26 13 5 26 4 2018/11/29
线性代数实验之矩阵创建 例:作五阶单位矩阵。 程序:e1=eye(5) 结果: e1 = 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 2018/11/29
线性代数实验之矩阵创建 例:作五阶幻方阵。 程序:m1=magic(5) 结果: m1 = 17 24 1 8 15 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 幻方阵的每行元素之和、每列元素之和、对角线元素之和皆相同。 2018/11/29
线性代数实验之矩阵创建 例:由向量c=2:7做六阶范德蒙矩阵 程序:F=vander(c) %由向量C生成范德蒙矩阵 结果: c = 2 3 4 5 6 7 F = 32 16 8 4 2 1 243 81 27 9 3 1 1024 256 64 16 4 1 3125 625 125 25 5 1 7776 1296 216 36 6 1 16807 2401 343 49 7 1 2018/11/29
线性代数实验之矩阵创建 F1=rot90(F) %矩阵逆时针旋转900 F1 = 1 1 1 1 1 1 2 3 4 5 6 7 1 1 1 1 1 1 2 3 4 5 6 7 4 9 16 25 36 49 8 27 64 125 216 343 16 81 256 625 1296 2401 32 243 1024 3125 7776 16807 2018/11/29
线性代数实验之矩阵创建 5.编程创建矩阵 例:创建矩阵的第i行j列的元素是其行标的5倍减列标的3倍。 程序:for i=1:5 for j=1:5 a(i,j)=5*i-3*j; end a 2018/11/29
线性代数实验之矩阵创建 结果: a = 2 -1 -4 -7 -10 7 4 1 -2 -5 12 9 6 3 0 17 14 11 8 5 2 -1 -4 -7 -10 7 4 1 -2 -5 12 9 6 3 0 17 14 11 8 5 22 19 16 13 10 2018/11/29
线性代数实验之矩阵创建 6.已知矩阵A其特殊矩阵的输入 diag(A) A的对角元素阵 triu(A) A的上三角元素阵 tril(A) A的下三角元素阵 eye(size(A)) 与A同阶单位阵 B=fix(15*rand(size(A))) 与A同阶的整数随机阵 B=[A B;C D] 由已知矩阵生成大矩阵 2018/11/29
线性代数实验之矩阵操作 二、矩阵的操作 例:A=[1 2 3;4 5 6;7 8 9] 1.改变A的某元素: A(2,3)=0 2.扩充A: 2018/11/29
线性代数实验之矩阵操作 4.选择A的部分列: A2=A(:,[2,3]) 5.选择A的子阵: A3=A([2,3],[1,3]) 2018/11/29
线性代数实验之矩阵操作 7.删除某列: A(:,3)=[ ] 8.删除某行: A(1,:)=[ ] 9.替换某行: A(3,:)=b 10.替换某列: A(:,2)=b’ 11.重复某列: A11=A(:,[1 1 1]) 2018/11/29
线性代数实验之矩阵操作 12.复制向量 B=(1 3 5) 成矩阵: A12=B([1 1 1],:) 14.建向量: A14(1:6)=A(:,2:3) 15.矩阵的元素: A2=A(2) (1列2行元素) 2018/11/29
线性代数实验之矩阵操作 y2=x(abs(x)>1) y3=x(find([1 1 1 1 0 0 0])) y1=abs(x)>1 y2=x(abs(x)>1) y3=x(find([1 1 1 1 0 0 0])) y4=x([1 1 1 1]) x(abs(x)>1)=[ ] 2018/11/29
多项式 一、已知多项式的系数向量求其构成的方程的根 例1:求 的根 程序: c=[1 0 –7 –6] %多项式的系数向量 例1:求 的根 程序: c=[1 0 –7 –6] %多项式的系数向量 r=roots(c)求根 2018/11/29
多项式 结果: c = 1 0 -7 -6 r= 3.0000 -2.0000 -1.0000 2018/11/29
多项式 例2:已知两个多项式a(x)=x3+2x2+3x+4和b(x)=x3+4x2+9x+16的乘积 程序: a=[1 2 3 4]; c=conv(a,b) 2018/11/29
多项式 c(x)=x6+6x5+20x4+50x3+75x2+84x+64 结果: c = 1 6 20 50 75 84 64 1 6 20 50 75 84 64 即乘积多项式为: c(x)=x6+6x5+20x4+50x3+75x2+84x+64 2018/11/29
多项式 多项式除法 例3:用上例中的c(x)多项式除以a(x)多项式。 程序: [q,r]=deconv(c,a) %q是商多项式的系数向量,r 是余数多项式的系数向量。 结果: q = 1 4 9 16 r = 0 0 0 0 0 0 0 2018/11/29
多项式 三、 多项式的微分 例4:求a(x)=x6+3x5+4x4-6x3+4x2-7x+12的微分 程序: 三、 多项式的微分 例4:求a(x)=x6+3x5+4x4-6x3+4x2-7x+12的微分 程序: a=[1 3 4 –6 4 –7 12]; a1=polyder(a) 结果: a1 = 6 15 16 -18 8 -7 即原多项式的导函数为:a1(x)=6x5+15x4+16x3-18x2+8x-7 2018/11/29
多项式 多项式的估值 例5:已知多项式为上例的a(x),估x分别取值 1、2、3、4、5、6时多项式的值 程序: x=1:30; v=polyval(a,x) 结果: v = 11 190 1647 7856 26827 73986 2018/11/29
线性代数实验之矩阵运算 A’ A的转置 det(A) A的行列式 rank(A) 矩阵的秩 inv(A) 矩阵求逆 compan(A) A的伴随矩阵 [D,X]=eig(A) A的特征值与特征向量 norm(A) 矩阵的范数 orth(A) 矩阵的正交化 poly(A) 特征多顶式 rref(A) 阶梯状行的 最简式 size(A) 测矩阵长度 2018/11/29
线性代数实验之矩阵运算 A+k =(a1+k,a2+k,…an+k) A*k =(a1*k,a2*k,…an*k) A+B 矩阵加法 A\B 等价于 inv(A) * B B/A 等价于 B * inv(A) A.*B 矩阵对应元素相乘 A./B 矩阵对应元素作除 A.^B B的元素作为A对应元素的幂次 2018/11/29
线性代数实验之矩阵运算 例:将矩阵A化为行的最简形式 程序: A1=rref(A) 结果: A = 1 -2 3 0 -1 -2 4 -4 1 3 -5 10 -17 -1 4 A1 = 1 -2 0 -1.5 -2.5 0 0 1 0.5 0.5 0 0 0 0 0 2018/11/29
线性代数实验之解方程组 1.Ax=b 当det(A)≠0则 x=A\b 例1:求下列方程组的解:xu7.m det(A)=-1708 2018/11/29
线性代数实验之解方程组 例2.Ax=b 当 det(A)=0则 由增广矩阵A作行的最简形式,从中找出方程组的基础解系及特解 det(A) B=[A b] rref(B)= 1 0 0 -293/322 165/322 0 1 0 -55/14 -73/14 0 0 1 -401/322 -505/322 0 0 0 0 0 2018/11/29
矩阵的特征值与特征向量 调用格式1:eig(A) %得到特征值列向量 调用格式2:[D,X]=eig(A) % D为由特征列向量构成的方阵,X为由特征值构成的对角阵。 例:求方阵 的特征值与特征向量 程序:A=[3 1 0;-4 -1 0;4 -8 -2] [D,X]=eig(A) 2018/11/29
矩阵的特征值与特征向量 结果: D = 0 221/1554 -221/1554 0 -221/777 221/777 0 221/1554 -221/1554 0 -221/777 221/777 1 621/655 -621/655 X = -2 0 0 0 1 0 0 0 1 2018/11/29
线性代数实验之二次型 方法: f=x’Ax ,将A的特征值求出,其即为二次型标准型的系数.再将A的特征向量矩阵D正交化得正交变换矩阵P. 例: 780/989 780/3691 1/2 -390/1351 D = 780/3691 780/989 -1/2 390/1351 780/1351 -780/1351 -1/2 390/1351 0 0 1/2 1170/1351 P=orth (D) [ D, X ] = e ig ( A ) P * P’ = E 2018/11/29
数学实验之函数定义 1.定义符号变量: syms x y z 2.定义函数: f = ‘ x^2+sin(x)^2-8 ’ 3.求函数值: x=2*pi eval( f ) 4.检查变量是字符还是数值: isstr(f ) f是字符时为1,f是数字时为0 2018/11/29
高等数学实验之函数极限 1.格式五种: 符号变量说明: syms x y t h a limit (f,x,a) limit (f,a) 默认变量x或唯一符号变量 limit (f) 默认变量x,且a=0 limit (f,x,a,’right’) 右极限 limit (f,x,a,’left’) 左极限 2018/11/29
高等数学实验之函数极限 2.举例: 结果 syms x h a limit (sin(x)/x) 1 2.举例: 结果 syms x h a limit (sin(x)/x) 1 limit (sin(x)/x,inf) 0 limit ((x-2)/(x^2-4),2) 1/4 limit (1/x,x,0,’right’) inf limit (1/x,x,0,’left’) - inf limit ((sin(x+h)-sin(x))/h,h,0) cos(x) limit ((1+a/x)*sin(x),x,a) 2*sin(a) 2018/11/29
数学实验之函数的微分 1.格式四种: diff (f) 关于符号变量对f求一阶导数 diff (f,v) 关于变量v对f求一阶导数 diff (f,n) 关于符号变量求n阶导数 diff (f,v,n) 关于变量v对f求n阶导数 2.例: f=‘a*x^3+x^2-b*x-c’ diff(f) 结果: 3*a*x^2+2*x-b diff(f,a) x^3 diff(f,2) 6*a*x+2 diff(f,a,2) 0 2018/11/29
数学实验之函数的微分 例:求下函数的导数 : y1=e-x(x2-2x+3) 求 y ’ y2=sin2x·sin(x2) 求 y’’ y3=(arctan(x/2))2 求 y’’’ y4=lncos(1/x) 求 y(4) 程序:syms x z1=diff(‘exp(x)*(x^2-2*x+3)’) z2=diff(‘(sin(x))^2*sin(x^2)’,2) z3=diff(‘(arctan(x/2))^2’,3) z4=diff(‘log(cos(1/x))’,4) 2018/11/29
数学实验之泰勒展开 命令格式 : 1. taylor(f) 在x=0点展开6项 2. taylor(f, n ,x0) 在x=x0点展开n项 syms x f =‘exp(x)’ taylor(f,x,5) 结果: 1+1*x+1/2*x^2+1/6*x^3+1/24*x^4 2018/11/29
高等数学实验之泰勒展开 例1.在x0=0点展开sin(x)成7项 命令:syms x y t f1=taylor(sin(x),x,7) 例3.在x0=1点展开log(x)成5项 f3=taylor(log(x),x,5,1) 例4.在x0=0点展开f=‘exp(x)+2*cos(x)’成4项 f=‘exp(x)+2*cos(x)’ f4=taylor(f,x,4) 2018/11/29
高等数学实验之一元极值 例:求 f = x3 - x2 - x + 1 在 (-2 ,2 )内的极值. 程序: syms x y x1=fminbnd( f ,-2,2) x2=fminbnd(‘-x^3+x^2+x-1’,-2,2) x=x1; minf = eval(f) x=x2; maxf = eval(f) 2018/11/29
高等数学实验之函数积分 1.格式四种: int (f) 对于f关于符号变量求不定积分 int (f,v) 对f关于变量v求不定积分 int (f,a,b) 对f关于符号变量从a到b求定积分 int (f,v,a,b) 对f关于变量v从a到b求定积分 2.例 syms x c f=‘c*x*sin(x) ‘ 结果: int (f) 对x的不定积分 sin(x)-x*cos(x)*c int (f,c) 对c的不定积分 1/2*c^2*x*sin(x) int (f,0,2*pi) 对x在给定区间(0,2pi)上的定积分 -2*pi*c 2018/11/29
介绍函数计算器:命令: funtool 2018/11/29
结束语 数学实验不仅仅是运用一个数学软件来计算各种数学题目。重要的是培养同学们分析问题和解决问题的能力。 在我编写的《大学数学实验》教科书中还有结合实际问题的数学实验专题,通过分析问题,建立数学模型,软件编程求解来提高科研能力和水平。 2018/11/29
谢谢观看! 2018/11/29