实验一 MATLAB基础训练
一、实验目的
本次上机实验主要练习使用Matlab的基本操作和基础知识,包括数组(复数、向量、矩阵、结构体数组等)的创建和数组元素的操作和运算、矩阵的运算、Matlab的运算符(尤其是点运算‘.’)、脚本M文件和函数M文件的编写、Matlab文件的编程(基本的流程控制结构)、基本的二维和三维绘图方法以及图形的标注等。希望通过本次实验使大家尽量在短时间内(4学时)掌握Matlab的基本操作和基础知识,为后面的实验项目奠定基础。
二、实验原理
参见PPT中有关内容。
三、实验内容
1. 上机练习课件中的例子。
2. 设两个复数a=1+2i, b=3-4i, 计算a+b, a-b, a*b, a/b, a和b的模。
3. 计算下式的结果,其中x=-3.5°, y=6.7°
(提示:① 应将角度单位由度转换为数学函数所能处理的弧度值;② 求根函数sqrt,取绝对值函数abs,具体用法用help查询)
4. 对矩阵 , 实现下列操作:
(1) 左右翻转(fliplr命令)
(2) 上下翻转(flipud命令)
(3) 利用cat命令分别将A扩展成3×6和6×3的矩阵
(3) 分别提取A的第2行,第2列,对角线元素
(4) 删除A的第2行2列的元素
(提示:将矩阵元素赋空阵[]可以删除元素,注意此时元素的访问只能使用单下标的方式。观察删除元素后,A中元素的排列方式的变化)
5. 创建[0,2p]区间上拥有100个等间隔元素的列向量x(Matlab默认是行向量),并绘制y=sin(x1/3)的函数图像。
6. 创建如下图所示的单结构体数组。
7. 编程训练:下图所示电路中,R1=2W, R2=4W, R3=12W, R4=4W, R5=12W, R6=4W, R7=2W, us=10V, 求i3。 (要求:以脚本M文件方式建立程序。此项练习M脚本文件的建立以及使用Matlab解线性方程组。)
(提示:先建立电路方程如下
该线性方程组等价于矩阵形式:
其中,A是包含R1~R7的系数矩阵, B=(us, 0, 0)T是常数矩阵, X=(ia, ib, ic)T =A-1B=A\B为解向量。因此使用矩阵除法(注意区别左除和右除)可以迅速解出ia, ib, ic。
最后i3= ia-ib=0.3704。)
8. 编程训练:已知某电路的电流i(t)的表达式为
画出[-p, p]区间上的电流波形。 (要求:① 以脚本M文件方式建立程序;② 用12号字体给图形加上标注‘t’和‘i(t)’,红色曲线+圆形标记‘o’,如下图所示。此项练习二维绘图方法、图形的标注和循环控制结构)
9. 编程训练:已知的取值范围是,若a=﹣8, b=8, 画出所表示的三维曲面。(要求:① 以脚本M文件方式建立程序;② 使用surf和mesh函数分别绘出曲面图和网格图,参考图形如下。此项练习三维绘图方法)
10. 以函数M文件的方式重做第9个项目,其中函数的输入参数为a和b。(此项练习M函数文件的建立)
11. 建立如下图所示的用户界面菜单。要求:(A)把用户菜单 'Option' 设置为顶层的第3菜单项;(B)下拉菜单被两条分隔线分为三个菜单区;(C)最下菜单项又有两个子菜单组成。(此项练习用户菜单的建立,写出M文件)
四、实验要求
以上训练项目要求在4个实验学时内完成,并提交项目7-11的程序。
五、思考题
1. 举例说明如何创建三维数组?
2. 第9个训练项目中,函数z的表达式中,分子可能被0除,导致绘图数据点中出现非数NaN,绘出的图形不正确。如何解决这一问题?
3. 如何将第9个项目中的两幅图放在同一个图形窗口中显示?(提示:使用subplot命令将图形窗口分割成1×2的子窗口。subplot(m,n,i)将图形窗口分割成m×n的子窗口,并指定第i个子窗口为图形的绘制区域)
4. surf函数绘出的三维图一般有黑色格线,如何消掉黑色格线?以第9个项目为例说明。
实验二? MATLAB数值计算:二阶电路的时域分析
一、实验目的
在物理学和工程技术上,很多问题都可以用一个或一组常微分方程来描述,因此要解决相应的实际问题往往需要首先求解对应的微分方程(组)。在大多数情况下这些微分方程(组)通常是非线性的或者是超越方程(比如范德堡方程,波导本征值方程等),很难解析地求解(精确解),因此往往需要使用计算机数值求解(近似解)。MATLAB作为一种强大的科学计算语言,其在数值计算和数据的可视化方面具有无以伦比的优势。在解决常微分方程(组)问题上,MATLAB就提供了多种可适用于不同场合(如刚性和非刚性问题)下的求解器(Solver),例如ode45,ode15s,ode23,ode23s等等。本次实验将以二阶线性电路-RLC电路和二阶