金融MATLAB实验报告三答案详解
- 格式:doc
- 大小:196.58 KB
- 文档页数:12
《MATLAB 原理及应用》实验报告9.课后练习题答案1.提取符号表达式222m z u ar +++的自由变量(当符号表达式中含有多余一个符号变量时,只有一个变量是独立变量,其余的符号当作常量。
如果不指定那一个变量当作是自由变量,matlab 将基于一定原则选择一个自由变量。
) 提示:findsym (s ,n )程序如下:>> syms a r u z mh=sym('a*r^2+u^2+z+m^2');>> findsym (h)ans =a, m, r, u, z 2.在MATLAB 中计算多项式2352212-+++-x x x x 的父母和分子 (提示:使用[n ,d]=numden (A ))程序如下:>> s=sym('(x^2-1)/(x+2)+(2*x+5)/(3*x-2)');[n,d]=numden(s)n =3*x^3+6*x+12d =(x+2)*(3*x-2)2.1、建立符号函数5332232-+x x (1)提取该表达式的分子和分母,并分别付给两个变量(2)对这两个变量分别进行代数运算(加减乘除及乘方)程序如下:>> s=sym('3/2*x^2+2/3*x-3/5');>> [n,d]=numden(s)n =45*x^2+20*x-18d =30>> s1=n-d;>> s2=n+d;>> s3=n*d;>> s4=n/d;>> s5=n^d;>> s=[s1;s2;s3;s4;s5]s =45*x^2+20*x-4845*x^2+20*x+121350*x^2+600*x-5403/2*x^2+2/3*x-3/5(45*x^2+20*x-18)^303.在MA TLAB 中,按照不同的方式合并表达式)()(23x e y x y x e x y y --+*-+的参数类项。
MATLAB 实验三MATLAB 计算可视化试验报告说明:1 做试验前请先预习,并独立完成试验和试验报告。
2 报告解答方式:将MATLAB 执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。
3 在页眉上写清报告名称,学生姓名,学号,专业以及班级。
3 报告以Word 文档书写。
文档命名方式: 学号+姓名+_(下划线)+试验几.doc 如:110400220张三_试验1.doc 4 试验报告doc 文档以附件形式发送到maya_email@ 。
凡文档命名不符合规范,或者发送方式不正确,不予登记。
一 目的和要求(1)熟练掌握MATLAB 二维曲线的绘制(2)熟练掌握图形的修饰(3)掌握三维图形的绘制(4)熟练掌握各种特殊图形的绘制(5)掌握句柄图形的概念二 内容和步骤(说明:绘图题需在报告中粘贴图形结果。
)1 绘制二维曲线(必做)查阅stem 绘图指令,利用stem 绘制复指数序列n j e n x )3..01.0()(+-=(其中1010<<-n )的相关图形,要求:(1)把窗口分成2行2列。
(2)左上窗口绘制复指数序列的实部波形,窗口右上角绘制复指数序列的虚部波形,左下角绘制复指数序列的幅度波形,右下角绘制窗口的相位波形。
要求每个子图标注标题,X,Y 轴说明。
要求显示网格。
% 复指数序列程序n=-10:10;alpha=-0.1+0.3*j;x=exp(alpha*n);real_x=real(x); % 实部img_x=imag(x); % 虚部mag_x=abs(x); % 幅值phase_x=(180/pi)*angle(x); % 相角,转为角度subplot(2,2,1)stem(n,real_x);title('实数部分');xlabel('n');ylabel('real'); grid onsubplot(2,2,2)stem(n,img_x);title('虚数部分');xlabel('n');ylabel('imag');grid onsubplot(2,2,3)stem(n,mag_x);title('幅度');xlabel('n');ylabel('abs');grid onsubplot(2,2,4)stem(n,phase_x);title('相位');xlabel('n');ylabel('phase');grid on同学解题过程存在的问题:1注意括号应用,有同学如此定义指数序列:x=exp(-0.1+j*0.3)*n ,思考错在哪里?2绘图程序最好放在M 脚本中编辑,部分同学是在命令窗口中,这样不便于对程序的调试和修正。
实验三选择结构程序设计实验内容1.程序代码function f(x)if x<0&x~=-3y=x*x+x-6;elseif x>0&x<5&x~=2&x~=3y=x*x-5.*x+6;elsey=x*x-x-1endy运行结果>> f(-7)y =36>> f(2.5)y =-0.2500>> f(90)y =80092.程序代码score=input('分数=');if score<=100&score>=0switch fix(score/10)case{9,10}grade='A';case{8}grade='B';case{7}grade='C';case{6}grade='D';otherwisegrade='E';endgradeelsedisp('输入有误,请输入正确的百分制成绩');end运行结果>> 分数=56grade =E>> f分数=345输入有误,请输入正确的百分制成绩3.程序代码time=input('工作时间=');switch timecase{time>120}wage=(time-120)*(1+15/100)*84+120*84;case{time<60}wage=time*84-700;otherwisewage=time*84end运行结果>> f工作时间=150wage =12600>> f工作时间=50wage =4200>> f工作时间=110wage =92404.程序代码A=10+90*rand(5);a=fix(A(3,3))b=fix(A(2,4))x=input('输入一个运算符号','s');switch xcase {'+'}c=a+b;case{'-'}c=a-b;case{'*'}c=a*b;case{'/'}c=a/b;otherwisec='无效'endc运行结果>> fa =55b =59输入一个运算符号+c =114>> fa =77b =14输入一个运算符号/c =5.5000>> fa =30b =58输入一个运算符号#c =无效c =无效5.程序代码A=input('输入一个5行6列的矩阵A=');n=input('输入一个正整数n=');if n<5&n>0disp(A(n,:));elsedisp(A(5,:));endlasterr运行结果>> f输入一个5行6列的矩阵A=[1 2 3 4 5 5;2 3 4 5 7 6;2 9 2 2 2 3;11 2 11 9 7 3;2 3 4 5 6 7] 输入一个正整数n=62 3 4 5 6 7ans =Undefined function or variable 'clcl'.>> f输入一个5行6列的矩阵A=[1 2 3 4 5 5;2 3 4 5 7 6;2 2 2 2 2 3;11 2 3 9 7 3;2 3 4 5 6 7]输入一个正整数n=32 2 2 2 2 3ans =Undefined function or variable 'clcl'.。
(完整版)MATLAB)课后实验答案[1]实验⼀ MATLAB 运算基础1. 先求下列表达式的值,然后显⽰MATLAB ⼯作空间的使⽤情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =,其中2120.455i x +??=?- (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--L (4) 2242011122123t t z t t t t t ?≤=-≤,其中t =0:0.5:2.5 解:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建⽴⼀个字符串向量,删除其中的⼤写字母。
解:(1) 结果:(2). 建⽴⼀个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:实验⼆ MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S=?,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对⾓阵,试通过数值计算验证2 2E R RS A O S +??=。
解: M ⽂件如下;5. 下⾯是⼀个线性⽅程组:1231112340.951110.673450.52111456x x x ??=???(1) 求⽅程的解。
(2) 将⽅程右边向量元素b 3改为0.53再求解,并⽐较b 3的变化和解的相对变化。
(3) 计算系数矩阵A 的条件数并分析结论。
解: M ⽂件如下:123d4e56g9实验三选择结构程序设计1. 求分段函数的值。
2226035605231x x x x y x x x x x x x ?+-<≠-?=-+≤<≠≠??--?且且及其他⽤if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
解:M ⽂件如下:2. 输⼊⼀个百分制成绩,要求输出成绩等级A、B、C、D、E。
Matlab 第三次实验报告 2012029010010 尹康1. 对高阶多项式()()()()()2011220k p x x x x x k ==---=-∏编程求下面方程的解()190p x x ε+=并绘图演示方程的解与扰动量ε的关系。
解:程序代码:p=[1,-1];for i=2:20n=[1,-i];p=conv(p,n); % 求多项式乘积 endm=zeros(1,21); % m 的最高次幂为20,有21项 hold onx=1:20;d=[-1,0,0.1,0.5,1];for i=1:5delt=d(i);m(2)=delt;y=(roots(p+m))'; % 求多项式的根 plot(x,y,'-o','color',[i/5,i/20,i/10]); endtitle('方程p(x)=0的解与扰动量delt 的关系')legend('delt=-1','delt=0','delt=0.1','delt=0.5','delt=1') 运行结果:心得体会:1.当delt=0时,程序运行结果仍然不能精确得到理论解,进一步说明计算机的表达能力是有限的,计算机中的运算总是存在舍入误差; 2当delt ≠0时,总的来说,即使|delt|很小,它对解的扰动也是巨大的;考察它对每个解的扰动程度,发现解的理论值越大,那么它受到的扰动越大; 3.当|delt|≠0的绝对值一定时,它是负值所造成的扰动大于它是正值时的。
2. 对220n = ,生成对应的Hilbert 矩阵,计算矩阵的条件数;通过先确定解获得常向量b 的方法,确定方程组()n H x b =最后,用矩阵分解方法求解方程组,并分析计算结果。
解:程序代码:clear allclcfor n=2:20h=hilb(n);fprintf('\n\nn=%-10dcond(Hn)∞=%d',n,cond(h,'inf'))%cond :求矩阵范数X=1:n;b=h*X';[l u]=lu(h); %lu分解x=u\(l\b); %利用lu分解求线性其次方程组的根 x=x';fprintf('\n X’=')for i=1:nfprintf('%-8.2f',X(i))endfprintf('\n x’=')for i=1:nfprintf('%-8.2f',x(i))endend运行结果:心得体会:1.采用lu 分解求解(x=u\(l\b ))的效率大大高于直接求解(x=A\b ); 2.当n ≤10时,尽管系数矩阵Hn 的条件数很大,但该算法所得解仍然能与理论解很好地吻合,说明病态问题并非一定不能求解;当n ≥11时(截图中红线所指),系统提示:Warning: Matrix is close to singular or badly scaled. Results may be inaccurate ,所得解的误差已经不能忽略。
MATLAB 实验三MATLAB 计算可视化试验报告说明:1 做试验前请先预习,并独立完成试验和试验报告。
2 报告解答方式:将MATLAB 执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。
3 在页眉上写清报告名称,学生姓名,学号,专业以及班级。
3 报告以Word 文档书写。
文档命名方式: 学号+姓名+_(下划线)+试验几.doc 如:110400220张三_试验1.doc 4 试验报告doc 文档以附件形式发送到maya_email@ 。
凡文档命名不符合规范,或者发送方式不正确,不予登记。
5 每次试验报告的最后提交期限:下周试验课之前。
6 欢迎访问我的教学论坛:/nbbs ,由此进入Matlab 专栏。
论坛注册时请在个人签名档写上自己的姓名和学号,以便于权限设置,可在论坛上交流学习,并可下载发布的试验报告和解答参考等相关资料。
一 目的和要求(1)熟练掌握MATLAB 二维曲线的绘制(2)熟练掌握图形的修饰(3)掌握三维图形的绘制(4)熟练掌握各种特殊图形的绘制(5)掌握句柄图形的概念(6)了解GUI 设计二 内容和步骤(说明:绘图题需在报告中粘贴图形结果。
)1 绘制二维曲线(必做)查阅stem 绘图指令,利用stem 绘制复指数序列n j e n x )3..01.0()(+-=(其中1010<<-n )的相关图形,要求:(1)把窗口分成2行2列。
(2)左上窗口绘制复指数序列的实部波形,窗口右上角绘制复指数序列的虚部波形,左下角绘制复指数序列的幅度波形,右下角绘制窗口的相位波形。
要求每个子图标注标题,X,Y 轴说明。
要求显示网格。
% 复指数序列程序n=-10:10;alpha=-0.1+0.3*j;x=exp(alpha*n);real_x=real(x); % 实部img_x=imag(x); % 虚部mag_x=abs(x); % 幅值phase_x=(180/pi)*angle(x); % 相角,转为角度subplot(2,2,1)stem(n,real_x);title('实数部分');xlabel('n');ylabel('real');grid onsubplot(2,2,2)stem(n,img_x);title('虚数部分');xlabel('n');ylabel('imag');grid onsubplot(2,2,3)stem(n,mag_x);title('幅度');xlabel('n');ylabel('abs');grid onsubplot(2,2,4)stem(n,phase_x);title('相位');xlabel('n');ylabel('phase');grid on同学解题过程存在的问题:1注意括号应用,有同学如此定义指数序列:x=exp(-0.1+j*0.3)*n,思考错在哪里?2绘图程序最好放在M脚本中编辑,部分同学是在命令窗口中,这样不便于对程序的调试和修正。
MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤1、命令窗口的简单使用(1)简单矩阵的输入(2)求[12+2×(7-4)]÷32的算术运算结果2、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。
clear,clca=[1 -2 3;4 5 -4;5 -6 7];[x,y]=find(a<0);c=[];for i=1:length(x)c(i,1)=a(x(i),y(i));c(i,2)=x(i);c(i,3)=y(i);c(i,4)=(y(i)-1)*size(a,2)+x(i);endc(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那个是虚数矩阵,后面那个出错(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?a^2= 22 16 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9) 写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B3、 已知⎪⎭⎫ ⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。
matlab实验指导答案详解(⾮常详细正确)实验⼀ MATLAB ⼯作环境熟悉及简单命令的执⾏⼀、实验⽬的:熟悉MATLAB 的⼯作环境,学会使⽤MATLAB 进⾏⼀些简单的运算。
⼆、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌⾯(Desktop ),包括菜单(Menu )、⼯具条(Toolbar )、命令窗⼝(Command Window)、历史命令窗⼝、⼯作空间(Workspace)等;完成⼀些基本的矩阵操作;学习使⽤在线帮助系统。
三、实验步骤:1、启动MATLAB ,熟悉MATLAB 的桌⾯。
2、在命令窗⼝执⾏命令完成以下运算,观察workspace 的变化,记录运算结果。
(1)(365-52?2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667(2)>>area=pi*2.5^2 area = 19.6350(3)已知x=3,y=4,在MATLAB 中求z :()232y x y x z -= >>x=3 >>y=4>>z = x ^2 * y ^3 / (x - y) ^2 z = 576(4)将下⾯的矩阵赋值给变量m1,在workspace 中察看m1在内存中占⽤的字节数。
m1=11514412679810115133216 执⾏以下命令>>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6>>m1( : , 3 ) ans =3 10 6 15>>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34(5)执⾏命令>>help abs查看函数abs 的⽤法及⽤途,计算abs( 3 + 4i ) (6)执⾏命令>>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y)(6)运⾏MATLAB 的演⽰程序,>>demo ,以便对MATLAB 有⼀个总体了解。
安徽财经大学金融证券实验室实验报告
实验课程名称《金融》TLABMA
金融学院部课系开
级班
学号
姓名
师导指教日年月
1.
2
一、期权定价分析
1.black-scholes方程求解
例1:假设欧式股票期权,六个月后到期,执行价格90元,现价为102元,无股利支付,
股价年化波动率为55%,无风险利率为8%,计算期权价格。
解:clear
Price=102;
>>Strike=90;
>>Rate=0.08;
>>Time=6/12;
>>V olatility=0.55;
[CallDelta,PutDelta]=blsprice(Price,Strike,Rate,Time,V olatility)
计算结果:
CallDelta=
23.5648
PutDelta=
8.0358
2.期权价格与波动率关系分析
Price=102;
>>Strike=90;
>>Rate=0.08;
>>Time=6/12;
V olatility=0.08:0.01:0.5;
>>N=length(V olatility)
Call=zeros(1,N);
Put=zeros(1,N);
for i=1:N
[Call(i),Put(i)]=blsprice(Price,Strike,Rate,Time,V olatility(i));
N=
43
end
plot(Call,'b--');
hold on
plot(Put,'b');
xlabel('V olatility')
ylabel('price')
legend('Call','Put')
3.计算期权Delta。
例2.假设欧式股票期权,六个月后到期,执行价格90元,现价为102元,无股利支付,
股价年化波动率为55%,无风险利率为8%,计算期权Delta。
解:clear
Price=102;
>>Strike=90;
>>Rate=0.08;
>>Time=6/12;
>>V olatility=0.55;
[CallDelta,PutDelta]=blsdelta(Price,Strike,Rate,Time,Volatility)计算结果:CallDelta=
0.7321
PutDelta=
-0.2679
4.利用不同的Price与Time计算Detla三维关系。
>>Price=60:1:102;
>>Strike=90;
Rate=0.08;
4.
5.B-S公式隐含波动率计算
例3:假设欧式股票期权,一年后,执行价格99元,现价为105元,无股利支付,股价年
化波动率为40%,无风险利率为10%,则期权价格为:
解:clear
>>Price=105;
>>Strike=99;
>>Rate=0.1;
>>Time=1;
>>CallValue=15;
>> CallVolatility = blsimpv(Price, Strike, Rate, Time, CallValue, [], [], [],
5.
{'Call'})
计算结果:
CallVolatility=
NaN
>>PutValue=7;
>>PutVolatility=blsimpv(Price,Strike,Rate,Time,PutValue,[],[], [],
{'Put'})
PutVolatility=
0.3455
6.期权二叉树模型的计算
例:假设欧式股票期权,三个月后到期,执行价格85元,现价为95元,无股利支付,股价
年化波动率为60%,无风险利率为10%。
解:clear
>>Price=95;
>>Strike=85;
>>Rate=0.1;
>>Time=4/12;
>>flag=1;
>>Increment=1/12;
>>Volatility=0.6;
>>[AssetPrice,OptionValue]=binprice(Price,Strike,Rate,Time, Increment,
Volatility,flag)
计算结果:
AssetPrice=
95.0000112.9654134.3283159.7312189.9379
079.891795.0000112.9654134.3283
67.18610079.891795.0000
6.
00056.501267.1861
47.51550000
OptionValue=
20.057432.495250.733375.4365104.9379 28.67088.860849.3283016.1268
10.00004.7685002.2739
00000
00000
7.
成绩:
指导教师签字:8.。