MATLAB考试要点
- 格式:docx
- 大小:21.19 KB
- 文档页数:4
1.简述MATLAB命令窗的主要作用。
命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。
是MATLAB提供给用户使用的管理功能的人机界面,其管理功能包括:管理工作空间中的变量、数据的输入输出的方式和方法,开发、调试、管理M文件和M函数的各种工具。
2.简述MATLAB如何解释命令窗口输入的指令。
MATLAB搜索次序如下:检查名字是否为变量,如果是则显示变量,否则进行下一步;检查名字是否为内建函数,如果是,则执行该函数,否则进行下一步;检查名字是否为当前目录下的M文件,如果是,则执行该文件,否则执行下一步;检查名字是否为搜索路径上的M文件,如果是,则执行该文件。
3.简述MATLAB函数的基本结构。
典型M 函数文件的结构:函数申明(定义)行(Function declaration line)、H1行(The first help text line)、在线帮助文本(Help text)区、编写和修改记录、函数体(Function body)。
4.简述绘制二维图形的一般步骤。
绘制二维图形的一般步骤为:曲线数据准备、选定图形窗及子图位置、调用二维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形的精细操作。
5.简述MATLAB历史指令窗的主要作用。
历史指令窗记录着用户在MATLAB指令窗中所输入过的所有指令。
历史记录包括:每次开启MATLAB的时间,每次开启MATLAB后在指令窗中运行过的所有指令。
应用功能有单行或多行指令的复制和运行、生成M文件等。
6.简述空数组的功用。
“空”数组的功用:在没有“空”数组参与的运算时,计算结果中的“空”可以合理地解释“所得结果的含义”;运用“空”数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数。
@@填空题1.MATLAB常用操作界面包括命令窗口、工作空间窗口、命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。
Matlab上机实验资料考试要求:1. 考试需携带身份证及一卡通(或学生证)参加考试,两者缺一不可2. 本考试为上机开卷考试,学生可带与考试相关的资料书籍,但考试中禁止携手机,考试中不要交头接耳,一旦发现以违纪处分;考试中听从监考老师的安排,按序就座。
考试题型:(共五大题,每题20分,共100分;占期末总分的20%)评分时按步骤和结果分别给分,务必将所有命令及结果复制粘贴到考试系统内,作图题只需要粘贴命令。
(一)Matlab数学软件简单的操作命令1.常用键(若在表达式后面跟分号“;”表示不显示结果,这对有大量数据的程序特别有用。
)2.变量MATLAB中用sym与syms创建一个符号变量与多个符号变量。
一般进行符号运算时,需先对符号变量进行说明。
其格式为: syms a b c或syms x y3. 函数MATLAB具有丰富的函数,可分为三大类:MATLAB内部函数;MATLAB系统附带的各种工具箱中提供的实用函数;用户自定义的函数。
注意:函数的调用格式为函数(变量)如sinx, 输入时为 sin(x);如e,输入时为exp(1);+∞,输入时为+inf;(二)Matlab数学软件应用举例(例题标注的双箭头符号不需要打入MATLAB)一、求函数值评分标准1.变量赋值正确5分2.表达式正确10分(1处错误扣5分,2处以上错误不得分)3.答案正确5分算术运算按照从左到右的顺序进行。
幂运算具有最高优先级,乘、除法具有相同的次优先级,加、减法有相同的最低优先级,括号可用来改变优先级次序。
例1 用MATLAB 软件计算当x=1.5;y=2时yx e y x ++⨯+sin )(ln 34352的值。
输入命令:>> syms x y ;(定义变量)x=1.5;y=2;(变量赋值)(4*x^2+3*(log(y)+exp(5))^3)/abs(sin(x)+sqrt(y))(最后回车得到答案)输出结果:ans = (自己计算)二、求极限评分标准1.定义变量 5分2.表达式输入 正确 10分 (1处错误扣5分,2处以上错误不得分) 3.答案 正确 5分极限命令:在MATLAB 符号工具箱中求极限的指令是limit①limit (f,x,a ):表示求函数f 当a x →时的极限。
matlab考试总结重点第一章1.MATLAB的典型应用:通用的数值计算、算法设计、自动控制技术、数字信号处理、统计信号处理、电力系统仿真。
2.MATLAB的显著优点:程序非常简洁。
3.MATLAB的主要特色:(1)面向对象特性:图形、窗口等都是对象,可以通过属性改变它们(2)只存在单一的数据结构:矩阵(3)矩阵的大小可以是任意大,只与内存有关且可以自动改变大小。
(4)变量不用定义(5)功能强大的图形处理与数值计算功能(6)系统扩充方便:允许用户自行建立完成指定功能的M文件,可以随时向系统增加函数,从而可以构成适合于某一领域的工具箱(7)先进的帮助系统(8)与WORD有机结合,WORD里可直接使用MATLAB功能。
(9)与C++等语言的接口(10)MATLAB 简单易学(11)不仅提供了编程环境,又提供了设计语言与C语言有很多共性,编程简单。
4.MATLAB的主要功能:(1)数据运算功能,提供了大量的数学函数更接近于数学表示(2)图形操作功能:提供了大量的图形函数使数据可视化。
提供了图形用户界面(3)符号运算功能:其操作对象和运算结果都是数学符号的表达式可用来推导公式。
5.MATLAB文件类型及功能:1.M文件:分为脚本M文件和函数M文件,脚本M,文件创建的变量都是MATLAB工作空间中的变量,工作空间的其他程序和函数可以共享。
函数M,文件可以传递参数,所以函数M文件的调用式中可以有输入参数和输出参数。
2.MAT文件:用于保存MATLAB系统所使用的数据。
3.MEX文件:可以被直接调入MATLAB中直接运行。
执行速度快还可以把较大的M文件编译成MEX 文件4.图形文件:用来存储由MATLAB得到的图形文件并不能被其他的图形编辑器编辑。
5.模型文件:用来存储建立的模型。
6.两种M文件的异同共性:在MATLAB命令窗口中键入文件名,可以执行M文件中的规定的计算任务或某种功能。
区别一:程序M文件中创建的变量都是MATLAB工作空间中的变量,工作空间的其他程序或函数可以共享;而函数M文件中创建的所有变量除了全程变量外,均为局限于函数运行空间内的局部变量;——类似于主程序区别二:函数M文件可以使用传递参数,所以函数M文件的调用式中可以有输入参数和输出参数,而程序M文件则没有这种功能。
《MATLAB》期末考试题型及分值(1)简答题4题*5分=20分简要回答要点(2)计算题6题*5分=30分命令(程序文件)(3)绘图题2题*10分=20分二维及三维(4)编程题2题*10分=20分(一)函数-程序文件(二)矩阵最大元素(5)综合题1题*10分计算并绘图题目1. 设计一个函数,用于求数组A的最大值、最小值以及平均值,其中,A的维数未知。
2. 写一个函数,用于求n元一次方程组的解.已知系数矩阵A和常数向量b,且A*x=b(要求处理无解和无穷解的情况)。
3. 有一组测量数据(xi,yi),已知x与y成线性关系,用最小二乘原理拟合y=f(x)的关系并绘图,同时求出直该直线的斜率。
4. 绘制三维曲面z=sin(r)/r,其中r=sqrt(x*x+y*y),要求使用灰度图,且黑色表示最高点,白色表示最低点,并使曲面光滑。
解(1)function y=suzu(A);A=input('请输入任意数组:');y=max(A);function y=suzu(A);A=input('请输入任意数组:');y=min(A);function y=suzu(A);A=input('请输入任意数组:');y=mean(A);//function[Ax]=Amax(A)Ax=max(max(max(A)))w=rand(4,5)%生成随即数组%w1=input('请输入你的数组')%该数组具有普遍性[a b ]=size(w); x=1;for k=1:afor d=1:bw1(x)=w(k,d);x=x+1;end endmaxw=w1(1);for t=1:length(w1)if maxw<w1(t)maxw=w1(t);end enddisp(['最大值为:'] )maxw(2)function [y,n]=jacobi(A,b,x0,eps)If nargin==3eps=1.0e-6;elseif nargin<3errorreturnendD=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);B=D\(L+U);f=D\b;y=B*x0+f;n=1;while norm(y-x0)>=epsx0=y;y=B*x0+f;n=n+1;End(3)xi=[0.1 0.2 0.15 0 -0.2 0.3];yi=[0.95 0.84 0.86 1.06 1.50 0.72];p=polyfit(xi,yi,2)x=-0.2:0.01:0.3y=polyval(p,x)plot(xi,yi,'o',x,y,'k')(4)[x,y]=meshgrid([-10:0.2:10]);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); surf(x,y,z)colormap(gray);subplot(1,1,1);surf(z);shading flat;。
频率特性类题目1 一个系统的开环传递函数为 ,试绘制其当K=5、30时系统的开环频率特性Nyquist 图,并判断系统的稳定性。
w=linspace(0.5,5,1000)*pi;sys1=zpk([ ],[0 -10 -2],100); %建立模型1,K=5 sys2=zpk([ ],[0 -10 -2],600); %建立模型1,K=5figure(1), nyquist(sys1,w); %绘Nyquist 图1 title('System Nyquist Charts with K=5') figure(2), nyquist(sys2,w) %绘Nyquist 图2 title('System Nyquist Charts with K=30')2系统开环传递函数为 ,建立其零极点增益模型,然后分别绘制当K=5、K=30时系统的开环频率特性Bode 图,并判断系统的稳定性。
sys1=zpk([],[0 -10 -2],100); sys2=zpk([],[0 -10 -2],600); figure(1),bode(sys1)title('sys1s bode withK=5'),grid figure(2),bode(sys2)title('sys2s bode withK=30'),grid [kg1,r1,wg1,wc1]=margin(sys1) [kg2,r2,wg2,wc2]=margin(sys2)3 系统开环传递函数为 ,计算K=5和K=30时系统的幅值裕度与相位裕度。
sys1=zpk([ ],[0 -10 -2],100); %建立模型1 sys2=zpk([ ],[0 -10 -2],600); %建立模型2 [kg1,r1,wg1,wc1]=margin(sys1) [kg2,r2,wg2,wc2]=margin(sys2)5.01)(1.01()(s s s k s G ++=)5.01)(1.01()(s s s ks G ++=)5.01)(1.01()(s s s ks G ++=4 已知某系统的闭环传递函数()s Φ如下,试用roots ()命令来判断系统的稳定性。
主要知识点专题一Matlab简介、基本用法重点:Matlab基本界面;Matlab路径设置以及搜索。
Matlab简单的数学运算,操作命令和快捷键;Matlab的数据类型/基本数学函数;Matlab的脚本编程。
专题二Matlab向量和矩阵重点:Matlab数组的创建;Matlab数组元素的访问、查找和排序;Matlab数组的运算;Matlab向量和矩阵的运算;Matlab矩阵和线性代数的基本命令函数(如:矩阵的逆、秩、行列式、特征值、特征向量等的实现命令)专题三Matlab编程入门重点:Matlab 中M文件的用法(脚本M文件和函数M文件;M文件的编写规范);Matlab 中M文件的输入、输出方式;Matlab 中关系、逻辑运算符;Matlab的流程控制语句;专题四Matlab绘图重点:了解Matlab图形窗口;掌握Matlab二维图形、三维图形的绘制命令;掌握Matlab符号作图命令ezplot,ezplot3,ezmesh,ezsurf;Matlab特殊图形的绘制,如条状图、柱状图、饼状图等;Matlab图形注释的添加;专题五Matlab符号计算重点:掌握Matlab符号对象、符号表达式创建命令sym,syms;掌握Matlab符号表达式的基本操作命令findsym,subs;掌握Matlab符号运算:极限、导数、积分、级数求和、tailor展开等;专题六微分方程求解重点:熟悉MATLAB微分方程符号运算求解运算。
掌握Matlab微分方程数值求解方法:欧拉折线法。
掌握Matlab微分方程数值求解方法:龙格-库塔方法。
掌握Matlab微分方程求解ode系列命令实现。
Matlab考试总结(100分)之前拷课件的时候,老师给了一个cpt00的文件,里面有9道题,比较简单,感觉像是考题,我就把他全部弄出了,并添加2012年的部分有参考价值的题目和练习题,把他们整理在一起,希望对大家有帮助。
由于时间比较紧,可能会有问题, 大家可以跟我联系QQ:181816322。
一、矩阵基本运算(约10分)(1)求矩阵a 的逆阵、对角线及其行列式的值。
a =2 1 -3 -13 1 0 7-1 2 4 -21 0 -1 5a=[2 1 -3 -1;3 1 0 7;-1 2 4 -2;1 0 -1 5];inv(a)det(a)(2).产生一个5阶的随机矩阵,大小位于(-5,5),并求出方阵的逆、行列式的值、特征值与特征矢量及正交矩阵。
(8分,2012年考试题)情况一:产生的矩阵元素全为整数A= randint(5,5,[-5,5])情况二:产生的矩阵元素为小数A=-5+10*rand(5)矩阵的逆:B=inv(A)或者B=A^(-1)行列式的值:D=det(A)特征值和特征矢量:[m n]=eig(A)正交矩阵:E=orth(A)扩展:矩阵的伪逆:pinv(A)矩阵的秩rank(A)条件数:cond(A)LU分解:[l,u]=lu(A)QR分解:[q, r]=qr(A)1、2、无穷范数:norm(A,1) norm(A,2) norm(A,inf)产生5阶的魔方(魔术)矩阵:magic(5)2.求垂直于向量A=(1,2,3)和B=(3,4,5)的向量,并计算三个向量的混合积(平行六面体的体积)。
A=[1 2 3];B=[3,4,5];C=cross(A,B)S=dot(A,cross(B,C))二、求导,积分,微分,极限 15分 1. 求下列函数的极限 (作业题) (1)lim(x 2/sin 2(x/3)) x=0 (2)lim((tanx-sinx)/sin 3x) x=0 程序代码如下: syms x;a= limit(x^2/(sin(x/3))^2,0)b= limit((tan(x)-sin(x))/(sin(x))^3,0) (3)32lim(1)xx t x→∞+(3分) (2012年考题) syms t xlimit((1+2*t/x)^(3*x),x,inf)2.求下列函数的定积分(1) (x+sinx)/(1+cosx) [0,pi/2] (2) cos 5xsinx [0,pi/2] syms x;int((x+sin(x))/(1+cos(x)),x,0,pi/2) int(cos(x)^5*sin(x), x,0,pi/2) 3.求导数(2012年考题)2222,,.(4)cos ln a t df d f d f f dx dt dxdt t x x ⎡⎤=⎢⎥⎣⎦。
1 一般来说,一个命令行输入一条命令,命令行以回车结束。
但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。
2 例如>>p=15, m=35>>p=15;m=35两者区别:第1行命令执行后,显示p,m的值;第2行命令执行后,显示m的值,p 的值不显示。
3 基本的搜索过程是:(1) 检查该命令是不是一个变量(2) 检查该命令是不是一个内部函数。
(3) 检查该命令是否当前目录下的M文件。
(4) 检查该命令是否MATLAB搜索路径中其他目录下的M文件。
4 变量的命名关键字(if、while等)不能作为变量名;分辨率最好不要用特殊常量符号作变量名5 EXP指eEps指容差变量。
当某值小于eps时,可认为此值为0.浮点数的最小分辨率。
Inf指无穷大6 B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。
(斜线下方的求逆)7 在算术、关系、逻辑运算中,算术运算优先级最高,其次是关系运算,逻辑运算优先级最低。
8.运算符的作用:.’(转置) ’ (共轭转置) .^ (数组和数值乘方) ^ (矩阵乘方)9向量的生成:(1) 直接输入法(2) 冒号表示法(3) 函数法:线性等分A=linspace(a1, an ,n)对数等分A=logspace(a1, an ,n)10元素的下标表示法:全下标方式A(i,j);单下标方式A(s), s=(j-1)*m+i。
11矩阵的创建(5)拼接函数和变形函数法cat(n,A1,A2,A3,…),n=1行向拼接,n=2纵向拼接, n>2拼接出的是多维数组。
repmat(A,m,n…),m n是沿行和列方向重复拼接A的次数.reshape(A,m,n…) m,n是后心矩阵的行列数。
12矩阵的秩:rank(A)矩阵的开方:sqrtm(A)矩阵的指数运算:expm(a)对数运算:logm(a)13多项式:(1)函数conv(p1,p2)用于求多项式p1和p2的乘积。
Chapter 1 基本…下行继续区分大小写变量合法命名:只含字母、数字、下划线,并以字母开头who显示定义变量whos显示定义变量及其信息clear all 清除所有存在变量help “?”查询函数和运用方法lookfor “?”查询与关键词有关的所有函数Integer整数real实数complex复数inf无限大NaN非数字format long显示多位小数short 4位bank 2位round()四舍五入fix()去小数部分floor()下取ceil()上取基本运算+ - * / ^ pi sqrt(x)开方exp(x)e的x次方prod() 连乘abs()求绝对值max()最大值min()最小值log()自然对数log2()log10()sin() cos() tan() cot() asin() acos() atan()矩阵、向量矩阵中空格或“,”分隔列“;”或回车分隔行transpose()或矩阵’矩阵转置inv()矩阵的倒置diag()将某矩阵除对角线元素外,其他元素为0,形成一个新的矩阵ones(2,3)两行三列的全是1的矩阵zeros(3,4)三行四列的全是0的矩阵eye(4)4行4列单位矩阵q13(2,4)矩阵q13第二行第四列数据q13(:,3) 矩阵q13第3列数据q13(2,:) 矩阵q13第2行数据q13(2:3,2:3) 矩阵q13 2到3行,2到3列的数据+ - 同行列数的矩阵才能加减*一般矩阵乘法.*对应元素相乘同理./ .^ a:b:c 以a开始,以b为间隔,最大数小于c 的数列字符‘’括起来A为矩阵sum(A)对列求和(得行)sum(A,2)对行求和(得列)sum(sum(A))对列求和再对行求和(得一个数)prod(A)对列连乘min(A)输出每一列的最小值B为向量[m,j]=max(B)m=最大值取值,j=最大值位置[m,j]=min(B)m=最小值取值,j=最小值位置逻辑运算判断:a==b a等于ba~=b a不等于b < > <= >=正确输出1,错误输出0画图plot(x,y)plot(x,y, '(颜色)(形状)') linspace(a,b,n)把起点为a终点为b的直线等分为n份title('Graph of y = sin(3\pix)') title图表名称xlabel('x axis') x轴名称ylabel('sin(3\pix)') y轴名称plot(x,y,'.',x,cos(3*pi*x),'g*')两条线画于一图legend('Sin curve', 'Cos curve')添加图标grid 加格子hold on 保留原曲线,可用于画多线在一图subplot(121), plot(x,y) 将作图区域分为1行2列,作第1个区域的图相关程序Plot a graph of y = sin(3px) for 0 ≤x ≤1 >> N = 100; h = 1/N;>> x = 0:h:1;>> y = cos(3*pi*x);>> plot(x,y)The command linspace (a,b,n) generates n + 1 equispaced points between a and b>> x = linspace (0,1,101);>> y = sin(3*pi*x);>> plot(x,y)随机数rand 0到1的随机数rand(2,3)2行3列随机矩阵rand(3)3行正矩阵随机矩阵randn 标准正态分布随机数y = random('name',A1,A2,A3,m,n)r5 = random('Normal',0,1,2,4)r6 =random('Poisson',6,1,6)文档读写IBM = xlsread('IBM.xls');IBM = textread('IBM.txt');IBM = dlmread('IBM.txt','',1,1);IBM = importdata('IBM.xls');m文件which mfile(文件名)查看路径edit mfile 编辑脚本mfile与函数mfile的区别,前者是全局变量,后者是局部变量function [var1 var2 …] =functionname(arg1,arg2, …)循环for…end while…end if…end if…elseif…elseif …else…end for…for…end…endswitch case… case… otherwise… end相关程序For Loops画多个图形>> x = -1:.05:1;>> for n = 1:8ubplot(4,2,n);plot(x,sin(n*pi*x));end求和>> sum = 0>> for i = 1:100sum = sum + i;end>> sumWhile LoopsWhat is the greatest value of n that can be used in the sum1^2 + 2^2 + … + n^2and get a value of less than 100?>> S = 1;>> n = 1;>> while S+ (n+1)^2 < 100n = n+1;S = S + n^2;end>> [n, S]If...Then Loop>> S = 1; n = 1;>>for i=1:100if S+(n+1)^2 < 100S = S+ (n+1)^2; n = n+1;endend>> [n, S]Chapter 2 现金流分析pvvar求变动现金流量的现值pvfix求固定现金流量的现值fvvar求变动现金流量的终值fvfix求固定现金流量的终值PV = pvvar(CashFlow, Rate, CFDates)程序>> CashFlow = [100 300 450]>> CFDates = ['01/12/1987';'02/14/1988';'03/03/1988']>> PV = pvvar(CashFlow, 0.09, CFDates)注意日期是列数据>> pvvar([-15000 3000 4500 5000 6800], 0.08) ans = 603.1667没有现金流日期时,默认为没两个现金流相隔一年Irr固定周期的内部收益率Xirr变动周期的内部收益率Return = irr(CashFlow)Return = xirr(CashFlow, Dates)程序>> CF = [-10000 3000 4500 5000];>> Return = irr(CF)Return =0.1105>> Dates=['01/12/00'; '02/14/01'; '09/03/01';'12/31/02'];>> Return = xirr(CF, Dates)Return =0.1177cfdur and cfconv 久期和凸性[Dur, ModDur] = cfdur(CashFlow, Yield) Conv = cfconv(CashFlow, Yield)程序>> CashFlow=[5 5 5 5 5 105];>> [Dur, ModDur] = cfdur(CashFlow, 0.05)Dur =5.3295ModDur =5.0757>> Conv = cfconv(CF, 0.05)Conv =95.5410债券价格和收益率[P, I应付利息] = bndprice(Yield, CouponRate票面利率, Settle交收日, Maturity到期) 日期一定要加单引号p=price+accruedintYield = bndyield(Price, CouponRate, Settle, Maturity)Duration = bnddurp(Price, CouponRate, Settle, Maturity)Duration = bnddury(Yield, CouponRate, Settle, Maturity)Convexity = bndconvp(Price, CouponRate, Settle, Maturity)Convxity = bndconvy(Yield, CouponRate, Settle, Maturity)程序Price-yield curve>> yields = 0.01: 0.01: 0.20;>> [P I] = bndprice(yields, 0.1, '08/10/07','12/31/20');>> plot (yields, P+I);>> grid on;>> xlabel('Yield');>> ylabel('Price') ;>> Title('Price-Yield Curve'); 利率免疫duration=holding period% SET BOND FEATURES (bondimmun.m) >> settle = '28-Aug-2007';>> maturity = ['15-Jun-2012' ; '31-Oct-2017' ;'01-Mar-2027'];>> couponRate = [0.07 ; 0.06 ; 0.08];>> yield = [0.06 ; 0.07 ; 0.075];% COMPUTE DURATIONS AND CONVEXITIES>> duration = bnddury(yield, couponRate, settle, maturity);>> convexity = bndconvy(yield, couponRate, settle, maturity);% COMPUTE PORTFOLIO WEIGHTS>> A = [duration'; convexity'; 1 1 1];>> b = [ 10; 160; 1];>> weights = A\b有效前沿[PortRisk, PortReturn, PortWts] =frontcon(ExpReturn历史收益率, ExpCovariance历史协方差, NumPorts返回结果的个数, PortReturn目标收益, AssetBounds资产界限, Groups, GroupBounds组合界限)程序>> r = [0.2 0.1];两种资产的历史收益率>> s = [0.2 -0.1; -0.1, 0.4];两种资产的历史协方差>> [Risk, Return, Wts] = frontcon(r, s, 5);>> [Risk, Return, Wts]ans =0.2958 0.1625 0.6250 0.37500.3075 0.1719 0.7187 0.28130.3400 0.1812 0.8125 0.18750.3883 0.1906 0.9062 0.09380.4472 0.2000 1.0000 0最后两列为权重含约束条件的有效前沿[PortRisk, PortReturn, PortWts] =portopt(Return, Cov, [], PortReturn, ConSet)约束条件ConSet = portcons('Default', Num, 'AssetLims', Min, Max,'GroupLims', Group, GroupMin, GroupMax);程序>> r = [0.1 0.2 0.15];>> s = [0.0100 -0.0061 0.0042; -0.0061 0.0400 -0.0252; 0.0042 -0.0252 0.0225];>> ObjReturn = 0.17;>> [Risk, Return, Wts] = portopt(r, s, [], ObjReturn)Return =0.1700Wts =0.0278 0.4278 0.5445>> Return = [0.1 0.2 0.15];>> Cov = 0.01*[0.5 -1 0.4; -1 4 -0.2; 0.4 -0.2 2.3];>> PortReturn = [0.15 0.16];目标收益率在0.15~0.16之间>> Num = 3;>> Min = [0.20 NaN NaN]; 投资组合中每种资产的下限>> Max = [0.5 0.5 0.5]; ……上限>> Group = [1 1 0; 0 1 1];分为两组,第一组由第1、2种资产构成;第二组由……>> GroupMin = [0.2, 0.2]; 第一组的投资比例下限为0.2;第二组……>> GroupMax = [0.8, 0.8]; 第一组的投资比例上限为0.8;第二组……>> ConSet = portcons('Default', Num,'AssetLims', Min, Max,'GroupLims', Group,GroupMin, GroupMax);>> [PortRisk, PortReturn, PortWts] =portopt(Return, Cov, [], PortReturn, ConSet) PortRisk = 0.0724 0.0910 PortReturn = 0.1500 0.1600 PortWts =0.4000 0.4000 0.2000 0.2606 0.4606 0.2789可借贷无风险资产时的有效前沿 [RiskyRisk, RiskyReturn, RiskyWts,RiskyFraction 所有风险资产占总资产的比例, OverallRisk, OverallReturn] =portalloc (PortRisk, PortReturn, PortWts,RisklessRate, BorrowRate, RiskAversion 风险厌恶程度) 程序>> Ret = [0.1 0.2 0.15];>> Cov = [ 0.005 -0.010 0.004; -0.010 0.040 -0.002; 0.004 -0.002 0.023];>> [Risk, Return, Wts] = frontcon(Ret, Cov, 20); >> RiskfreeR = 0.08; BorrowR = 0.12; >> RiskAversion = 3;>> portalloc (Risk, Return, Wts, RiskfreeR, BorrowR, RiskAversion); (return the graphic)>>[RiskyRisk, RiskyReturn, RiskyWts,RiskyFraction, OverallRisk, OverallReturn] = portalloc (Risk, Return, Wts, RiskfreeR, BorrowR, RiskAversion)最优化问题[x, fval] = fmincon (fun 目标函数, x0从x0开始试值, A, b, Aeq, beq, lb, ub, nonlcon 非线性约束,options)options = optimset ('LargeScale','off') 注意:x1要加括号x (1);目标函数要建立m 文件;非线性约束要建立m 文件程序Step 1: Write an M-file Myobj.m.function function [f] = Myobj(x) f =exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+x(2)+1);Step 2: Write an M-file Mycon.m for the constraintsfunction [c, ceq] = Mycon(x)% Nonlinear inequality constraintsc = [1.5 + x(1)*x(2) - x(1) - x(2); -x(1)*x(2) - 10];% Nonlinear equality constraintsceq = [];Step 3: Invoke constrained optimization routineA = [1 1; 2 -1]; b = [20; 10]; Aeq = []; beq = [];lb = [-10 -10]; ub = [10, 10];x0 = [-1,1]; % Make a starting guess at the solutionoptions = optimset('LargeScale','off');[x, fval] = fmincon(@Myobj, x0, A, b, Aeq, beq, lb, ub, @Mycon, options)B-S 模型[Call, Put] = blsprice (Price, Strike, Rate, Time, V olatility, Yield)[CallDelta, PutDelta] = blsdelta (Price, Strike, Rate, Time, V olatility, Yield)Gamma = blsgamma (Price, Strike, Rate, Time, V olatility, Yield)[CallEl, PutEl] = blslambda (Price, Strike, Rate, Time, V olatility, Yield)[CallRho, PutRho]= blsrho (Price, Strike, Rate, Time, V olatility, Yield)[CallTheta, PutTheta] = blstheta (Price, Strike, Rate, Time, V olatility, Yield)Vega = blsvega (Price, Strike, Rate, Time, V olatility, Yield)Volatility = blsimpv (Price, Strike, Rate, Time, Value, Limit, Yield, Tolerance, Class)Chapter 3 二叉树模型European and American CallEuropean PutAmerican Put 程序欧式二叉树function [] = BinomialEuro()T=4/12 % experiation daten=40; %total number of periods K=300; %exercise pricer=0.08;%risk free interest rate sigma=0.3;%vloatility of S0=300; deltat=T/n;u=exp(sigma*sqrt(deltat)); d=exp(-sigma*sqrt(deltat));p=(exp(r*deltat)-d)/(u-d); %risk adjusted probability q=1-p;for i=1:n+1s(i)=u^(n+1-i)*d^(i-1)*S0; % stock price w(i)=nchoosek(n,i-1)*p^(n+1-i)*q^(i-1); % probabilityx(i)=max(s(i)-K,0); % call: min ()..:()0 ()0xobj f x s t c x ceq x A x bAeq x beq lb x ub ≤=⋅≤⋅=≤≤非线性不等式约束 非线性等式约束线性不等式约束 线性等式约束 上下界 1221122121212121212: min (4241)..: 1.50 100 20 210-10,10x x obj ex x x x xs t x x x x x x x x x x x x ++++--+≤--≤+≤-≤≤≤(),r q t e dp u e d e u d -∆--⇒===-0,0,,0max{,0)TrT T i T i i f e p S K -==-∑0,0,,0max{,0)TrT T i T i i f e p K S -==-∑,01,1,1max{max{,0}, ()}t i i r tt i t i t i f K S u d e pf qf --∆+++=-+y(i)=max(-s(i)+K,0); % European putcv(i)=w(i)*x(i);pv(i)=w(i)*y(i);endC=sum(cv(:))*exp(-r*T)P=sum(pv(:))*exp(-r*T)美式二叉树function [c] = BinomialAmer()T=4/12; % experiation daten=4; %total number of periodsK=300; %exercise pricer=0.08;%risk free interest ratesigma=0.3;%vloatility ofS0=300;deltat=T/n;u=exp(sigma*sqrt(deltat));d=exp(-sigma*sqrt(deltat));p=(exp(r*deltat)-d)/(u-d); %risk adjusted probabilityq=1-p;s(1,1)=S0; %first stage price of stock;for t=2:n+1 %stock price from stage 2 to n+1 for i=1:ts(t,i)=u^(t-i)*d^(i-1)*S0;endendfor i=1:n+1 %option price at last stagex(n+1,i)=max(K-s(n+1,i),0);endfor t=n:(-1):1for i=1:tx(t,i)=(q*x(t+1,i)+p*x(t+1,i+1))/exp(r*deltat); % option price at node (t,i) without exercisex(t,i)=max(x(t,i),K-s(t,i)); %check for exerciseendendc=x(1,1);Chapter 4 蒙特卡罗模拟计算面积Input: Total number n of random points Output: AREA = approximate area under the curveStep 1: Initialize初始化: COUNTER计数器= 0 Step 2: For i= 1, 2, …, n, do Steps 3-5Step 3: Generate random coordinates坐标xi and yi, satisfying a≤xi≤b and 0 ≤yi≤M.Step 4: Calculate f (xi) for the random xiStep 5: If yi≤f (xi), increase the COUNTER by 1. Otherwise, leave COUNTER as is.Step 6 CalculateAREA = M(b –a) COUNTER / nStep 7 OUTPUT(AREA), STOP程序%The area under the curve y = cos x over the interval [-pi/2, pi/2]function [area] = MC1(n)X=rand(n,1)*pi-pi/2 %generating n uniformly distributed RVs over the interval [-pi/2, pi/2]Y=rand(n,1) %generating n uniformly distributed RVs over the interval [0,1] Z=cos(X); %calculate the value of f(x)counter=0;for i = 1 : nif Y(i) <= Z(i)counter=counter+1;endendarea=pi*counter/n;估计pi程序function [Mypi] = Mypi()n = 10000; %number of replicatescount = 0;for i = 1:nx = rand;y = rand;if x^2+y^2 <= 1count = count + 1;endendMypi = 4*count/n;计算积分程序%estimate the integral积分of sin(x)cos(x) function [Myinte] = Myinte()n = 10000; %number of replicatesa = 1; % lower boundb = 3; % upper boundcount = 0;for i = 1:nx = 2*rand+1;count = count + cos(x)*sin(x);endMyinte = (b-a)*count/n;欧式看涨期权定价亚式看涨期权定价1()[()]()[()]()b b Niia ab af x dx E f x dx b a E f x f xN=-≈=-≈1()[()]()[()]()b b Niia ab af xdx E f x dx b a E f x f xN=-≈=-≈∑⎰⎰()()()2211,,()(0)()ˆiir TirTi in nfor i ngenerate Zset S T S eset c e S TKset c c c nσ-++-===-=+()()()()2121111,,1,,()()()()()ˆj j ijijj jmrTin nr t tfor i nfor j mgenerate Zset S t S t eset S S t S tset c e S Kset c c c nσ---+--+====++=-=+Chapter 5 随机数生成器线性同余产生器程序function[]=line(a,m,n) x(1)=2 for i=1:nx(i+1)=mod(a*x(i),m); u(i+1)=x(i+1)/m; end x u%余数mod (被除数,除数)混合线性同余产生器程序function [u] = lcg(seed, n)% the equation to generate random number is: x(n+1)=(a*x(n)+b) mod m% seed is used to generate the first random number% n is the number of random number wanteda = 1229;b = 1;m = 32768;x = zeros(1,n);x(1)=mod(a*seed+b, m);for i = 2:nx(i)= mod(a*x(i-1)+b, m); endu = x./m; % make the random unmber between 0 and 1plot(u(1:n-1), u(2:n), '.'); % plot the pair of point (u(n), u(n+1))title('Autocorrelaton of LCG'); 计算循环的周期function [p]=lcg(a,b,m,x0,n) x(1)=mod((a*x0+b),m) u(1)=x(1)/m for i=2:nx(i)=mod((a*x(i-1)+b),m) u(i)=x(i)/m if u(i)==u(1) p=i end end洗牌程序function [] = lcgsh(seed, n)% This function implements a shuffling scheme on the numbers generated by% seed is used to generate the first random number% n is the number of random number wantedu = lcg(seed, n+20);Seq = ceil(20*lcg(10, n))+1; w = zeros(1,n);for i = 1:nh = Seq(i); w(i) = u(h); u(h) = u(i+20); endplot(w(1:n-1), w(2:n), '.'); % plot the pair of point (u(n), u(n+1))title('Autocorrelaton of LCG');%% the simplest way % u = lcg(seed, n);% Seq = ceil((n-1)*lcg(10, n))+1; % w = zeros(1,n); %% for i = 1:n% h = Seq(i); % w(i) = u(h); % end %% plot(w(1:n-1), w(2:n), '.'); % plot the pair of point (u(n), u(n+1))% title('Autocorrelaton of LCG');掷骰子程序function [outcome] = dice(n)% this function is a Random Dice Generator % n is the number of trialsU = rand(1, n);outcome = zeros(1,n);for i = 1:nif (0 <= U(i) & U(i) <= 1/6) outcome(i) = 1;elseif (1/6 < U(i) & U(i) <= 2/6) outcome(i) = 2;elseif (2/6 < U(i) & U(i) <= 3/6) outcome(i) = 3;elseif (3/6 < U(i) & U(i) <= 4/6) outcome(i) = 4;elseif (4/6 < U(i) & U(i) <= 5/6) outcome(i) = 5; elseoutcome(i) = 6; end end生成符合possion 过程的随机数Step 1: Set s 1=0, s 2=p 1, j =0. And generate a uniform random number U ;Step 2: Check If s 1≤U ≤s 2, then x =j . And exit. Step 3: Else update s 1=s 2, s 2=s 2+p j+1, j =j +1; Go to Step 2. 程序function [] = Poisson(seed, lambda, n)% This function implements a Poisson random number generator% seed is used to generate the first random number% lambda is the parameter of Poisson distribution % n is the number of random number wanted%calculate the prob. of p(x) for x = 1:m, m is the assumed maximum of x m = 1000; P = ones(1,m); for i = 1:m P(i) =exp(-lambda)*lambda^(i-1)/factorial(i-1); endpoisson = ones(1,n);111mod /i i i i x ax m u x m +++==111()mod /i i i i x ax b m u x m +++=+=rand('state',seed) for i = 1:n s1 = 0; s2 = P(1); U = rand; for j = 1:mif (s1 <= U & U <= s2) poisson(i) = j-1; break elses1 = s2;s2 = s2 + P(j+1); end end endmean(poisson) var(poisson)生成符合连续概率分布的随机数 Draw a random number U ~U (0,1) Return X = F−1 (U ) Example Exponential CDF:Inverse of the CDF: 程序>> rand(…state',1); >> -2*log(rand) ans =1.34Box-Mueller 方法生成符合正态分布的随机数 程序function [w] = Boxmuller(seed, n)% Box-Muller method to generate normally distributed random numbersu = lcg(seed,n); % u = rand(1,n);G1 = zeros(1, n); G2 = zeros(1, n); w = zeros(1, 2*n);for i = 1: n,G1(i) = sqrt(-2 * log(u(i))) * cos(2 * pi * u(n-i+1));G2(i) = sqrt(-2 * log(u(i))) * sin(2 * pi * u(n-i+1)); endw = [G1 G2];plot(G1, G2, '.');title('Plot of G1, G2'); xlabel('G1'); ylabel('G2');[H,P,KSSTA T,CV] = kstest(w,[],0.05,0)figurenormplot(w);Chapter6 减小方差的方法控制变量法程序function []= ContrVariate()clear allS0=90; % inital price of the underlying K=90; % strike price r=0.05; % risk-free ratesigma=0.3; % volatility of the underlying T=0.25; % experiation daten=10000; % number of replications% compute call option price: uncontrolled estimator for i=1:n% simulate stock price using Continous risk neutral dynamics when deltat=0.1deltaw = random('Normal',0,sqrt(T),1,1); % independent increament ST(i) =S0*exp((r-1/2*sigma^2)*T+sigma*deltaw); % stock price at expiration dateY1(i)=max(ST(i)-K,0)*exp(-r*T); % payoff of European Call end% compute call option price: controlled estimator covM=cov(ST,Y1); % covarance coefficient between ST and YcorrM=corrcoef(ST, Y1); % correlation coefficient between ST and Yb=-covM(1,2)/covM(1,1); % the optimal coefficient for controlled variate estimatorfor i=1:nY2(i)=Y1(i)+b*(ST(i)-S0*exp(r*T)); % payoff of European Call using control variate endEurC1=mean(Y1(:)) % uncontrolled estimator EurC2=mean(Y2(:)) % controlled estimatorVarEurC1=var(Y1); % variance of uncontrolled estimatorVarEurC2=var(Y2); % variance of controlled estimatorratio=VarEurC2/VarEurC1 % the ration of the variance of the optimally controlled estimator to the uncontrolled estimator is对偶变量法Step 1: generate random number e 1~U(0,1), andcompute f 1 = g (e 1)Step 2: let e 2 =1-e 1, and compute f 2 = g (e 2)Step 3: compute Example>> rand('seed',0)>> U=rand(1,100);>> X=exp(U); >> I=mean(X) I =1.7461>> S2=var(X) S2 = 0.2499Chapter7 布朗运动/()1, 0x P F x e x θ-==->log(), (0,1)X P P U θ=- *(,)()Cov X Y b Var X =-()([])i i i Y b Y b X E X =--11var()var()2f f <122f f f +=11 1.7183x I e dx e ==-≈⎰>>rand('seed',0) >> U1=rand(1,50); >> U2=1-U1; >> X1=exp(U1); >> X2=exp(U2);>> X=0.5*(X1+X2); >> I=mean(X)I >> =1.7175>> S2=var(X)S2 = 0.0044程序%Generating Brownian Motion Sample Paths function BrownianMotion()n=100000; deltat=1/n;mu=0.1; %mean per yearsigma=0.2; %standard deviation per year X=zeros(4,n);randnumber=normrnd(0,1,4,n);%正态分布(均值,标准差,4行,n 列)for i=1:nX(1,i+1)=X(1,i)+sqrt(deltat)*randnumber(1,i); % standard BWX(2,i+1)=X(2,i)+mu*deltat+sigma*sqrt(deltat)*r andnumber(2,i); % general BWX(3,i+1)=X(3,i)+mu*deltat+sigma*X(3,i)*sqrt(d eltat)*randnumber(3,i); % Ito process with drift=mu, diffussion=sigma*XX(4,i+1)=X(4,i)+mu*X(3,i)*deltat+sigma*X(4,i)*sqrt(deltat)*randnumber(4,i); % Ito process with drift=mu*X, diffussion=sigma*X end跳跃过程Step 1: generate Z ~N (0,1);Step 2: generate N ~Poisson(lD t ); if N =0, set M =1 and go to step 4Step 3: generate Y 1,…Y N from their common distribution and set M =Y 1×…×Y Step4: set程序function [c] = jumpdiffusion()n=10; %total number of trading days r=0.1; %rate of return per yearsigma=0.4612; %standard deviation of the underlyingS0=90.44; %price of underlying;lambda=1*4; %Possion process with lambda per yeardeltat = 1/252; %delta t per step T=10/252; %maturity timew = 1000; %# of replications for s = 1:wX = random('Poisson',T*lambda);%compute the number of jumps in the period of deltatY=1.1+rand(1,X)*(1.3-1.1);%generate the intensity of each jumpM=prod(Y);%compute the cumulative intensity of and jumps in the period of deltat deltaw = random('Normal',0,sqrt(T),1,1); ST(s) =S0*exp((r-sigma^2/2)*T+sigma*deltaw)*M; % solution by Equation endChapter8 美式期权的定价Step 1: simulate n independent paths of the dynamics of the underlying assets Step 2: at terminal nodes, set Step 3: apply backward induction for i =T -1, …, 1 given estimated values , use regression tocalculate the coefficientSetStep 4: set 程序%Price an American put option function AmericanPut()clear allT=3; % experiation daten=3; %total number of periods S0=1;K=1.1; %exercise pricer=0.06;%risk free interest rate sigma=0.3;%vloatility of deltat=T/n;lambda=0; %Possion process with lambda per yearw = 10000; %# of replications State=[zeros(w,n),ones(w,1)]; %St=[1.00,1.09,1.08,1.34;1.00,1.16,1.26,1.54,;1.00,1.22,1.07,1.03;1.00,0.93,0.97,0.92;1.00,1.11,1.56,1.52;1.00,0.76,0.77,0.90;1.00,0.92,0.84,1.01;1.00,0.88,1.22,1.34];for s = 1:wSt(s,:) = zeros(1,n+1); St(s,1) = S0; for k = 1:nX = random('Poisson',deltat*lambda);%compute the number of jumps in the period of deltatY=1.1+rand(1,X)*(1.3-1.1);%generate the intensity of each jump M=prod(Y); %compute the cumulative intensity of and jumps in the period of deltat deltaw = random('Normal',0,sqrt(deltat),1,1); St(s,k+1) =St(s,k)*exp((r-sigma^2/2)*deltat+sigma*deltaw); % GBM endVt(s,:) = zeros(1,n+1);V(s,n+1)=max(K-St(s,n+1),0); endfor k = n:-1:2 xdata=[]; ydata=[]; for s = 1:wif St(s,k)<K % select observations for estimation of the regressionxdata=[xdata,St(s,k)];ydata=[ydata,V(s,k+1)*exp(-r*deltat)]; end endx0 = [0, 0 , 0]; % Starting guessx = lsqcurvefit(@Regfun,x0,xdata,ydata); % Call the regression function 线性回归for s = 1:w % select the decision if St(s,k)<KC(s,k)=x(1)+x(2)*St(s,k)+x(3)*St(s,k)^2; if K-St(s,k)>C(s,k); State(s,k)=1;21(2)1()()i t t Z i i S t S t e M μσ+-∆+∆+=,,ˆ()T j T T j V h X =1,ˆi jV +{},,,ˆˆmax (),()i j i i j i i jV h X C X =1110ˆˆˆn V V V n+=V(s,k)=max(K-St(s,k),0);endendendendfor s = 1:8for k = 1:n+1if State(s,k)==1;V0(s)=max((K-St(s,k)),0)*exp(-r*(k-1));breakendendendmeanV0=mean(V0)function F = Regfun(x,xdata)F = x(1) + x(2)*xdata + x(3)*xdata.^2;Chapter9 有限差分的方法美式看跌期权定价向前差分程序function imfdamput(Smax, dS, T, dT, K, R, SIG); % Implicit method% Smax : maximum stock price% dS : increment of stock price% T : maturity date% dT : time step% K : exercise price% R : risk free interest rateM = ceil(Smax/dS);%s增长的最大次数ds = Smax / M;N = ceil(T/dT); %T增长的最大次数dt = T / N;J = 1:M-1;a = .5*R*dt*J - .5*SIG^2*dt*J.^2;b = 1 + SIG^2*dt*J.^2 + R*dt;c = -.5*R*dt*J - .5*SIG^2*dt*J.^2;A = diag(b) + diag(a(2:M-1), -1) + diag(c(1:M-2),1);put = zeros(N+1, M+1);put(N+1, :) = max(K - [0:ds:Smax], 0);%赋初值put(:, 1) = K; %赋初值put(:, M+1) = 0;%赋初值for i = N:-1:1y = put(i+1, 2:M)';y(1) = y(1) - a(1)*K;put(i, 2:M) = [A \ y]';put(i, :) = max(K - [0:ds:Smax], put(i,:)); endx=0:dT:T;y=0:dS:Smax;mesh(y,x,put)%画三维图像向后差分程序f unction exfdamput(Smax, dS, T, dT, K, R, SIG); % Explicit Method% Smax : maximum stock price% dS : increment of stock price% T : maturity date% dT : time step% K : exercise price% R : risk free interest rateM = ceil(Smax/dS);ds = Smax / M; N = ceil(T/dT);dt = T / N;J = 1:M-1;a = (-.5*R*dt*J + .5*SIG^2*dt*J.^2) / (1+R*dt);b = (1 - SIG^2*dt*J.^2) / (1+R*dt);c = (.5*R*dt*J + .5*SIG^2*dt*J.^2) / (1 + R*dt);A = diag(b) + diag(a(2:M-1), -1) + diag(c(1:M-2),1);put = zeros(N+1, M+1);put(N+1, :) = max(K - [0:ds:Smax], 0);put(:, 1) = K;put(:, M+1) = 0;for i = N:-1:1y = zeros(1, M-1);y(1) = a(1)*put(i+1, 1);y(M-1) = c(M-1)*put(i+1,M+1);put(i, 2:M) = put(i+1, 2:M) * A' + y;put(i, :) = max(K - [0:ds:Smax], put(i,:)); endx=0:dT:T;y=0:dS:Smax;mesh(y,x,put)。
MATLAB考试要点整理1.查询语法基本函数友情提醒:help第9页2.MATLAB中显示维数(19页),类型的基本函数3.掌握分号不显示运行结果,还有什么符号表示注释行4.掌握M文件调用方法(2种)5.掌握If语句的使用6.掌握MATLAB中提取矩阵对角元素的函数的语句7.掌握求矩阵上三角的函数8.已知多项式的系数矢量,求根的命令9.已知根,建立多项式的指令10.在同一坐标中画出2个函数(一些样式的设置,详见第三章)11.添加网格线的命令12.掌握计算秩的函数13.工作变量如何保存到文件,用什么命令将某文件读取到MATLAB工作空间中14.计算矩阵的大小(size,length)到时候给2个矩阵填写执行结果15.掌握求矩阵的标号与序号的转换命令16.掌握在【a,b】产生一个随机的矩阵m*n,产生特定均值,特定方差使用命令17.掌握Z=xy,求2阶偏导18.保证总元素不变的情况下,重新按几行几列排列的命令19.MATLAB变量定义规则20.掌握求矩阵的特征值和特征向量21.掌握清空命令指令22.掌握MATLAB中取整函数(简单求结果)23.掌握MATLAB符号运算(积分,极限)24.排序函数如何将原本列优先改为按行排列降序改为升序,如何写程序24.掌握算术平均值和中值25.掌握diff函数26.求解非线性方程(内联和匿名)27.多项式拟合(画图的时候是有一些样式要求,还有xlabel,ylabel 之类的)重点掌握28.求解常微分方程(符号法和数值法)重点掌握29.掌握预定义变量(12页)ans,eps,pi,i,j,inf,nan(就左边一列的)考试题型:1填空2选择3.程序阅读4.编程考试形式:笔试时间:第12周周1(2013-05-13)第8,9节友情提醒:试卷不会很难,但是建立在你之前将书上基本知识都搞懂的基础上,一般来说题目都很基础,建议最好将书好好梳理一下,然后在对照考点看看。
祝大家考试顺利!!!。
Matlab期末考试题型分布一、填空题(2分×=10分)二、选择题(3分×=15分)三、阅读程序,分析结果(20分)四、应用题(55分:矩阵运算10分、绘图10分、编程15分、simulink20分)复习1、MATLAB常用操作界面包括命令窗口、工作间窗口、命令历史窗口、当前目录窗口、内存数组编辑器、M 文件编辑/调试器、帮助浏览器、图形窗口等。
2、常用标点符号的作用百分号(%):如,可用来表示该行为注释行,% a=1 分号(;):如,可以使命令行不显示运算结果,a=1;冒号(:):如,可以在数组定义中,用来定义等差数组,0:1:4=0 1 2 3 4逗号(,):如,可区分列或函数参数分隔符,a=[1,2,3] 省略号(…):如,可用来连接语句。
标点符号定义标点符号定义区分行,取消运行显; . 小数点以及域访问等示等区分列或函数参数,… 连接语句分隔符:在数组中应用较多‘ 字符串的标识符号指定运算优先级等= 赋值符号 ( ) 矩阵定义的标志等! 调用操作系统运算 [ ] 用于构成单元数组 % 注释语句的标识 { } 等3、常用的操作命令指令含义指令含义 cd clf 设置当前工作目录清空当前图形窗clc cla 清除指令窗中显示的内容清空当前坐标系clearlookfor 清除内存变量按关键词查找帮助 who help 列出当前工作空间的变量查找Matlab函数的帮助 whos delete 列出工作窗口变量清单从磁盘删除指定文件 which doc 指出文件所在目录查看帮助页面 what class 列出当前目录中文件清单查看变量类型 dir more 列出指定目录的文件清单使显示内容分页显示 edit type 打开M文件编辑器显示M文件的内容 exit/quit save 退出MATLAB 保存变量 open load 打开文件载入变量4、Matlab中的常量 NaN 特殊变量取值不定量如0/0 ans 结果的缺省变量名 i,j 基本虚数单位pi nargin 圆周率函数的输入变量数目 eps nargout 计算机的最小数函数的输出变量数目 flops realmin 浮点运算数最小的可用正实数 inf realmax 无穷大如1/0 最大的可用正实数5、变量的命名规则变量在使用前不需定义维数和大小,也不需要指定变量的类型;变量名长度不超过31位,超过31位的字符系统将忽略不计;变量名必须是不含空格的单个词,命名规则:以字母打头、不含标点符号,区分;字母的大小写,如X1、x1、a、A等。
Ceil向正无穷取整Floor向负无穷取整Round四舍五入取整Mod(m,n)取余符号与n一致Rem(m,n)取余符号与m一致Plot(x,y1,’r-*’)Subplot(m,n,p)Conv ([],[])[q,r]=deconv([],[])Polyadd([],[])Polyval([],x)Polyvalm([],[])Roots([])Poly2sym([])1命令文件与函数文件的主要区别是什么?答:(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;(3)命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量2 如何定义全局变量?答:用关键字global可以把一个变量定义为全局变量,在M文件中定义全局变量时,如果在当前工作空间已经存在了相同的变量,系统将会给出警告,说明由于将该变量定义为全局变量,可能会使变量的值发生改变,为避免发生这种情况,应该在使用变量前先将其定义为全局变量。
3.数组运算和矩阵运算的运算符有什么区别?答:在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。
4.在MATLAB中有几种获得帮助的途径?答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择H elp菜单中的MATLAB Help菜单项可以打开帮助浏览器。
(2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息。
(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数。
(4)模糊查询:输入命令的前几个字母,然后按Tab 键,就可以列出所有以这几个字母开始的命令和函数。
matlab考试试题Matlab考试试题Matlab是一种广泛应用于科学计算和工程领域的高级编程语言和环境。
对于学习和掌握Matlab,学生们通常需要参加考试来检验他们的理解和应用能力。
本文将以Matlab考试试题为主题,探讨一些常见的考题类型和解题思路。
一、基础知识与语法在Matlab的考试中,通常会涉及一些基础知识和语法的考察。
例如,考生可能会被要求解释Matlab中的变量命名规则,讲述Matlab中常用的数据类型,以及Matlab中的循环和条件语句的使用方法等等。
对于这类问题,考生需要对Matlab的基本概念和语法有一定的了解。
他们可以通过查阅相关的资料和教材,或者通过实践和编写简单的程序来加深对这些概念和语法的理解。
二、矩阵运算与向量化编程Matlab是一种强大的矩阵运算工具,因此在考试中,矩阵运算和向量化编程相关的题目也是常见的。
例如,考生可能会被要求编写一个函数来实现矩阵的乘法运算,或者给出一个矩阵,并要求计算其特征值和特征向量等等。
对于这类问题,考生需要熟悉Matlab中的矩阵运算函数和操作符,例如乘法运算符"*"、转置运算符"'"、特征值函数"eig"等等。
此外,他们还需要掌握向量化编程的思想,即通过对整个矩阵或向量进行操作,而不是使用循环来逐个处理元素。
三、图形绘制与数据可视化Matlab在科学计算和工程领域中广泛应用于数据可视化和图形绘制。
因此,在Matlab的考试中,图形绘制和数据可视化相关的题目也是常见的。
例如,考生可能会被要求绘制一个函数的图像,或者给定一组数据,要求绘制其散点图或曲线拟合图等等。
对于这类问题,考生需要熟悉Matlab中的图形绘制函数和操作,例如绘图函数"plot"、散点图函数"scatter"、曲线拟合函数"fit"等等。
此外,他们还需要了解如何设置图形的标题、坐标轴标签、图例等元素,以及如何调整图形的样式和布局。
MATLAB知识点总结复试面试1. 数据类型在MATLAB中,有许多常见的数据类型,包括数值类型、字符类型、逻辑类型和结构类型。
数值类型包括整数类型(int8、int16、int32、int64)、浮点数类型(single、double)、复数类型(complex)等。
字符类型用于存储文本数据,逻辑类型用于存储逻辑值(true、false)以及结构类型用于存储复杂的数据结构。
2. 基本操作MATLAB中有许多基本操作,包括算术运算、逻辑运算、关系运算、索引和切片等。
算术运算包括加法、减法、乘法、除法等,逻辑运算包括与、或、非等,关系运算包括等于、大于、小于等。
索引和切片用于访问和操作数组中的元素。
3. 函数函数是MATLAB中的一个重要概念,它是一段可以重复使用的代码片段。
MATLAB中有许多内置函数,如sin、cos、exp等,用户也可以自定义函数。
函数的定义格式为:function [output_args] = function_name(input_args),其中output_args为函数的输出参数,function_name为函数的名称,input_args为函数的输入参数。
4. 绘图MATLAB具有强大的绘图功能,可以用于绘制二维和三维图形。
常见的绘图函数包括plot、scatter、bar、surf等。
用户可以通过设置各种属性来定制图形,如坐标轴标签、图例、线型、颜色等。
5. 文件处理MATLAB支持各种文件的读写操作,如文本文件、图片、音频、视频等。
常见的文件操作函数包括load、save、fopen、fclose等。
用户可以读取和处理各种格式的数据,以及生成各种格式的文件。
总之,MATLAB是一个功能强大的科学计算工具,具有丰富的功能和灵活的语法。
通过学习MATLAB,用户可以进行各种数据分析、数值计算、图形绘制等工作。
希望本文能够帮助您更好地了解和使用MATLAB。
总结一、小知识点MATLAB全称Matrix laboratory变量 who:变量 whos:数据类型矩阵的生成和提取、取代、运算+ - * / ’点运算、点幂运算向量的生成b=1:2:10 c=1:5% ...特殊数字的表示(p21)inf eps piM文件的两种类型:脚本文件和函数文件(区别)(p16)生成、区别、调用M脚本文件与M函数文件的区别:M脚本文件:(1)执行方式:按文件所写的指令执行,存放于M文件中,这种文件的构成比较简单;(2)调用:执行方式简单,键入文件名即可;(3)变量存储方式:脚本文件运行后,所产生的变量贮存在MATLAB基本工作空间。
(base workspace)。
M函数文件:(1)执行方式:function[]=函数名()与脚本文件不同,函数文件犹如一个“黑箱”,从外界只看到传给它的输入量和传送出去的计算结果,而内部动作是看不见的。
(2)调用:c=mfun(a,b)。
(3)变量存储方式:MATLAB专门开辟一个临时工作空间(context workspace),存放所有中间变量,执行完文件指令,中间变量被清除。
[例1-3] 在雨水管道中(满管流),已知流量和管径,求水力坡度。
Q=v*A v=1/n*R^(2/3)*I^(1/2)脚本文件clear;clcn=0.013;D=0.5;Q=0.05;A=pi/4*D^2;v= Q/ A;R=D/4;i=(v*n/R^(2/3))^2;函数文件function i=getslope(Q,D)n=0.013;A=pi/4*D^2;v= Q/ A;R=D/4;i=(v*n/R^(2/3))^2;系统搜索文件的过程(p15)二、函数(命令)clear(p14) clc(p20) fprintf(p32) sum(50)max min mean(p77) ones zeros eyes(p78) find(p110) roundlinspace(p48) logspace length(p49)三、常用数学方法应用的函数插值 interp1(x,y,’method’)(例2-1)( P19)拟合:多项式拟合 p=polyfit(x,y,n) polyval(例2-2 3-2)最小二乘拟合k=lsqcurvefit(@fun,k0,x,y,[],[],opt,P) (例2-3 2-4,习题1-1 1-3)匿名函数形式(p43)非线性方程求解 x=fsolve(@fun,x0) (例2-5 2-6 3-4 3-5 3-12__3-18)创建函数的形式、参数的传递 global常微分方程数值解 [t,y]=ode45(@fun,tspan,y0,options,P)(p58)方差分析(p67)anova1(x) anova2(x,reps)左除ax=b;x=a\b解析解 dsolve(51) vpa(p55小数点形式表达)eval(‘string’)(p57)solve(3-3)四、绘图命令1、plot(x1,y1,x2,y2) (p22)xlabel ylabel title legend textgrid on box on axis hold onsubplotset(H,’属性名’,’属性值’)gca gcf xscale xtick xlim xticklabel2、boxplot(x,notch)(p66)3、stem pie bar (p84)4、contour(x,y,z,n) clabel colorbar meshgrid griddata(p116 c3_16)5、semilogy plotyy五、管网平差(解环、解节点思路、难点认识)xlsread xlswrite。
名词解释A ans 最新计算结果的默认变量名area 面域图;主用于表现比例、成份axis auto 使用默认设置axis off 取消轴背景axis on 使用轴背景axis equal 纵、横轴采用等长刻度axis normal 矩形坐标系(默认)axis square 产生正方形坐标系B bar 直方图;主用于统计数据C cd 设置当前工作目录clf 清除图形窗cle 清除指令窗中显示内容clear 清除MATLAB工作空间中保存的变量D dir 列出指定目录下的文件和子目录清单doc 引出帮助浏览器,或在浏览器中显示相关帮助信息diary 把指令窗中输入记录为文件det(A) 行列式|A|diag(A) 取对角元构成向量,或据向量构成对角阵diag 提取对角元素,或生成对角阵E eps 浮点数相对精度2^-52edit 打开M文件编辑器exit 关闭/退出MATLABezmesh 画网线图ezplot 画二维曲线ezplot3 画三维曲线ezplolar 画极坐标曲线ezsurf 画曲线图eye 产生单位数组F format / format short 通常保证小数点后四位有效,最多不超过7位;对于大于1000的实数,用5位有效数字的科学记数形式显示format long 小数点后15位数字表示format short e 5位科学记数表示format long e 15位科学记数表示format rat 近似有理数表示flipud 以数组“水平中线”为对称轴,交换上下对称位置上的数组元素fliplr 以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素H help 在指令窗中显示帮助信息I i或j 虚单元Inf或inf 无穷大intmax 可表达的最大正整数intmin 可表达的最小负整数inv(A) 矩阵逆A^-1M more 使其后显示的内容分页进行N NaN或nan 不是一个数(Not a Number)O ones 产生全1数组P Pi 圆周率πpoly(A) 矩阵的特征多项式pie 二维饼图;统计数据极坐标形式plot 基本二维曲线图形指令polar 以极坐标绘制曲线Q quit 关闭/退出MATLABR realmax 最大正实数realmin 最小正实数return 返回到上层调用程序;结束键盘模式rank(A) 矩阵秩repmat 按指定的“行数、列数”铺放模块数组,以形成更大的数组reshape 在总元素数不变的前提下,改变数组的“行数、列数”rot90 把数组逆时针旋转90°T type 显示指定M文件的内容W which 指出其后文件所在的目录Z zeros 产生全0数组简答1.MATLAB基本搜索过程:(1)检查MATLAB内存,看cont是不是变量;假如不是变量,则进行下一步。
(2)检查cont是不是内建函数(Built-in Function);假如不是,再往下执行。
(3)在当前目录上,检查是否有名为cont的M文件存在;假如不是,再往下执行。
(4)在MATLAB搜索路径的其他目录中,检查是否有名为cont的M文件存在。
2.基本符号对象的创建:任何基本符号对象都必须借助专门的符号函数指令sym或syms定义。
例:Sym(‘Num’) 创建一个符号数字Num3.int指令的使用格式和说明:格式intf=int(f,v) 给出f对指定变量v的不定积分intf=int(f,v,a,b) 给出f对指定变量v的定积分说明(1)当f是函数数组时,积分将对数组元素逐个进行。
(2)v省缺时,积分对symvar确认的变量进行。
(3)a,b分别是积分的下、上限,允许它们取任何值或符号表达式。
4.ezplot指令的使用格式和说明:格式ezplot(Fx,[xmin,xmax,ymin,ymax]) 在指定x,y范围内,绘制y=f(x)描写的平面曲线ezplot(Fxy,[xmin,xmax,ymin,ymax])在指定x,y范围内,绘制f(x,y)=0描写的平面曲线ezplot(xt,yt,[tmin,tmax]) 在指定t范围内,绘制x=x(t),y=y(t)描写的平面曲线说明(1)平面曲线指令ezplot的第一(和第二)输入量可以有三种形式:Fx;Fxy;xt,yt。
它们分别表示的数学含义是:y=f(x);f(x,y)=0;x=x(t),y=y(t)。
但不管何种表达方式,这些输入量描写的曲线一定有一个独立变量。
(2)函数输入量Fx;Fxy;xt,yt,zt的程序表现可以是:符号函数、字符表达函数、函数M文件句柄、匿名函数句柄。
(3)ezplot会自动把被绘制函数和自变量分别标写为图名和横轴名。
但用户也可以根据需要,使用title,xlabel指令重写图名和横轴名。
(4)ezplot指令不能制定所绘曲线线型、色彩;不允许同时绘制多条曲线。
但采取一些辅助措施,仍可实现色彩控制和重绘。
(5)text,grid,zoom,ginput等指令可用于ezplot绘制的图形。
5.数组的运算规则:(1)同维同规模数组之间的(加、减、乘、除、求幂等)运算,体现为“数组对应元素间的运算”。
(2)标量与数组之间的(加、减、乘、除、求幂)运算,体现为“标量与数组每个元素之间的运算”。
(3)初等函数对数组的运算,体现为“初等函数对数组每个元素的运算”。
6.递增、递减型数组的创建方法:(1)冒号生成法x=a:inc:b(2)线性(或对数)定点法x=linspace(a,b,n) 以a,b为左右端点,产生线性等间隔的(1×)行数组x=logspace(a,b,n) 以a,b为左右端点,产生对数等间隔的(1×n)行数组7.“空”数组的定义、功用和说明:定义:“空”数组是MATLAB为操作和表述需要而专门设计的一种数组。
二维“空”数组,用一对方括号表示。
至于其他高维数组,只要数组某维或若干维长度为0,则该数组就是“空”数组。
功用:(1)在没有“空数”组参与运算时,计算结果中的“空”可以合理地解释“所得结果的含义”。
(2)运用“空”数组对其他非空数组赋值,可以使数组变小,但不能改变数组的维数。
说明:(1)不要把“空”数组与全零数组混淆。
(2)不要把“空数”组看成虚无,它确实地存在。
利用which,who,whos,以及变量浏览器都可以验证它的存在。
(3)唯一能正确判断一个数组是否“空”数组的指令是isempty。
(4)“空”数组在运算中不具备传递性。
对运算中出现的“空”结果,解释要谨慎。
8.脚本文件的特点:(1)它是一串按用户意图排列而成的MATLAB指令集合。
(2)脚本文件运行后产生的所有变量都驻留在MATLAB基本工作空间中。
只要用户不清除或指令窗不关闭,这些变量就一直保存在基本工作空间中。
函数文件的特点:(1)形式上与脚本文件不同,函数文件第一行总是以function引导的函数申明行。
(2)MATLAB允许使用比标称数目少的输入/输出量,实现对函数的调用。
(3)运行上与脚本文件不同,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间(函数工作空间)。
所有中间变量都存放在函数工作空间中。
(4)如果在函数文件中,发生对脚本文件的调用,则该脚本文件运行产生的所有变量都存放在那个函数空间中,而不是存放在基本空间中。
论述1.MATLAB的特点:(1)面向矩阵/数组设计的运算(2)非常友好的人机界面(3)语言以解释方式工作(4)移植性和开放性很好(5)语句简单,内涵丰富(6)高效方便的矩阵和数组运算(7)方便的绘图功能2.MATLAB的绘图:MATLAB具有强大的绘图功能,提供了大量二维、三维图形函数。
(1)二维图形绘图基本指令plot 基本调用格式:plot(x,y,’s’) x,y分别指定采样点的横坐标和纵坐标;’s’用来指定“离散点型”或“连续线型”,与此同时还可指定“点线色彩”。
plot的衍生调用格式plot(x,y,’s’) 用s指定的点形线形色彩绘制多条曲线(2)三维曲线和曲面plot3(x,y,z,’z’) 用’s’指定的点形线形色彩绘制以x,y,z为三条坐标轴的三维曲线图;surf(x,y,z,c) 画出由c指定用色的三维曲面图(3)area 面域图;bar 直方图;pie 饼图;polar 极坐标图3.MATLAB的关系运算和逻辑运算:在所有关系表达式和逻辑表达式中,作为输入的任何非0数都被看作是“逻辑真”,而只有0才被认为是“逻辑假”;作为输出,是一个由0和1组成的“逻辑数组”,在此数组中“1”为真“0”为假。
关系运算:<小于;>大于;==等于;<=小于等于;>=大于等于;n=不等于标量可以与任何维数组进行比较,当比较量中没有标量时,关系符两端进行比较的数组必须为同维。
逻辑运算:&与;|或;~非;xor异或标量可以与任何维数组进行比较,当逻辑运算中没有标量时,参与运算的数组维数必须相同。
4.MATLAB数值积分方法:st=trapz(x,y) 采用梯形法沿列方向求函数y关于自变量x的积分;sct=cumtrapz(x,y)采用梯形法沿列方向求函数y关于自变量x的累计积分;对于计算数值积分精度没有严格要求的场合,trapz和cumtrapz是两条比较方便易用的指令,这两条指令所得的数值积分的精度与积分区间分割的稀密程度有关,采样点数越多,积分精度越高,但精度无法定量控制。
5.MATLAB的多项式运算:在MATLAB中,n次多项式是用一个长度为n+1的向量来表示的,缺少的幂次项系数为0。
(1)多项式四则运算:加减运算就是其所对应的系数的加减运算;多项式乘法运算k=conv(p,q) ;多项式除法运算[k,r]=deconv(p,q),其中k返回的是多项式p除以q的商,r是余式(2)多项式的导数k=polyder(p) 多项式p的导数;k=polyder(p,q) 多项式p*q的导数;[k,d]=polyder(p,q) 多项式p/q的导数,k是分子d是分母(3)多项式求值:代数多项式求值y=polyval(p,x)计算多项式p在x点的值;矩阵多项式求值y=polyvalm(p,x)以方阵x为自变量,计算多项式的值,采用矩阵运算(4)多项式求根:x=roots(p)若p是n次多项式,则输出x为包含p=0的n个根的n维向量。