第2章投资环境

上传人:s9****2 文档编号:569570565 上传时间:2024-07-30 格式:PPT 页数:50 大小:581.50KB
返回 下载 相关 举报
第2章投资环境_第1页
第1页 / 共50页
第2章投资环境_第2页
第2页 / 共50页
第2章投资环境_第3页
第3页 / 共50页
第2章投资环境_第4页
第4页 / 共50页
第2章投资环境_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第2章投资环境》由会员分享,可在线阅读,更多相关《第2章投资环境(50页珍藏版)》请在金锄头文库上搜索。

1、MATLABMATLAB第第2讲讲 数据结构与基本运算数据结构与基本运算2.1 数值数组及其运算数值数组及其运算2.2 字符串、元胞和架构数组字符串、元胞和架构数组2.3 数值计算数值计算2.4 符号计算符号计算1MATLABMATLAB2.1 数值数组及其运算数值数组及其运算一、数据特点与类型二、变量、数组与函数三、数组运算与矩阵运算四、多项式的表达方式与运算五、关系运算和逻辑运算2MATLABMATLAB一、数据特点与类型1. 数据特点:数组是MATLAB最基本、最重要的数据对象。单个数据(标量)可以看成是数组的特例。2. 数据类型:基本型:数值型(整型、浮点型)、字符串型构造型:元胞数组

2、(Cell)、构架数组(Structure) 符号对象:sym syms3MATLABMATLAB二、变量、数组与函数1. 变量的命名 举例:x x2 a_2 student1 X A2注意:(1)字母az,AZ,数字,下划线_,可命名变量,但变量名中不得包含空格和其它标点;(2)必须以英文字母开头,最多63个字符(6.5版);(3)区分字母的大小写;4MATLABMATLAB2特殊变量表5MATLABMATLAB3 变量的管理(1) 变量的查询与删除 who whos clear (2) 保存和装载变量 save load6MATLABMATLAB4. 数组的创建与寻访(1)直接输入举例:a

3、=0,1,6;4,5,2;0,0,1,c=0 1 2 3 ,d=1+2i;pi;sqrt(2);1-2i注:1)数组元素必须用 括住2)同行数组元素必须用逗号或空格分隔,行与行之间必须用分号分隔3)数组元素可以是实数,也可以是复数(2)冒号生成法举例:x=0:2:100;7MATLABMATLAB(3)利用标准数组生成函数指令含义指令含义diag产生对角形数组(对高维不适用)rand产生均匀分布随机数组eye产生单位数组(对高维不适用)randn产生正态分布随机数组magic产生魔方数组(对高维不适用)zeros产生全0数组ones产生全1数组gallery产生特殊的测试矩阵另:linspac

4、e(a,b,n), logspace(a,b,n)等,或在低维数组基础上,利用cat、repmat、reshape等函数构建高维数组(4)利用M文件创建 大而复杂的数组数据8MATLABMATLAB数组的寻访(1)一维数组举例:a=0 1 6 4 5 2 0 0 1,a(3); a(1 2 6); a(1 2 3 2 4 5 3 5)(2)多维数组常用指令 表2.5.19MATLABMATLAB5. 数组运算的常用函数(1)三角函数 sin, cos, asin, acos, cot, (2)指数函数 exp, log, log10, sqrt, (3)复数函数 abs, conj, real

5、, imag, (4)圆整和求余函数 ceil, fix, round, rem, (5)坐标变换函数 cart2sph, pol2cart, (6)数组操作函数 flipdim, fliplr, repmat, (7)其它特殊函数 erf, gamma, expint,以上函数见表2.6.1表2.6.5,表2.9.210MATLABMATLAB三、数组运算与矩阵运算 表2.7.11. 矩阵的基本算术运算 * /(右除) (左除) (乘方)注意:(1)标量与矩阵相乘应是标量分别与矩阵的每个元素相乘; (2)矩阵与矩阵相乘时,如A*B,应满足矩阵A的列数必须等于矩阵B的行数; (3)右除,左除,

6、被除的矩阵必须可逆,因此必须是方阵; (4)乘方运算的矩阵也必须是方阵。 11MATLABMATLAB2. 矩阵运算函数inv(A) - 矩阵求逆det(A) - 行列式计算v, d= eig(A) - 矩阵特征值与特征向量expm (A) - 矩阵的指数logm (A) - 矩阵的对数 sqrtm(A) - 矩阵平方根与exp(A)区别与log(A)区别与sqrt(A)区别12MATLABMATLAB3. 数组运算+ - .* ./ . .注意:点运算是在数组意义下进行,指它们的对应元素进行相关运算,要求两数组的维参数相同13MATLABMATLAB四、多项式的表达方式与运算1、MATLAB

7、中如何表示多项式?用系数行向量表示:注:降幂排列2、如何创建多项式行向量?(1)直接输入法 降幂(2)指令法 P=poly(A)产生多项式系数向量3、多项式的数学显示: P(x)=poly2str(P,x) 14MATLABMATLAB4、多项式的运算函数 表2.8.1指令含义p=conv(p1,p2)多项式p1和p2的乘积q,r=deconv(p1,p2)多项式p1被p2除的商q,余rp=ploy(AR)方阵AR的特征多项式,或向量AR指定根对应的多项式dp=polyder(p)多项式p的导数dp=polyder(p1,p2)多项式p1,p2的乘积的导数Num, Den= polyder(p

8、1,p2)对有理分式p1/p2求导,得有理分式Num/Denp=polyfit(x,y,n)向量x,y给定数据的n阶拟合多项式pA=polyval(p,S)按数组运算规则计算多项式值PM=polyvalm(p,S)按矩阵运算规则计算多项式值r,p,k=residue(b,a)部分分式展开r=roots(p)多项式的根15MATLABMATLABp=1 2 0 -5 6s=1 2 3例:多项式 ,求p(x)=0的根;求x=2时,p的值;求微分dp/dx;求p与s的加减乘除。16MATLABMATLAB四、关系运算和逻辑运算运算符:算术运算符、关系运算符、逻辑运算符。处理顺序:算术运算符、关系运算

9、符、逻辑运算符。约定:逻辑真-1, 逻辑假- 01、关系运算符例:A=1 2 -1 -5 B=0 2 3 1 小于AB ans=0 0 1 1A 大于AB ans=1 0 0 0A1 ans=0 1 0 0 = 小于等于A = 大于等于A=B ans=1 1 0 0= = 等于A=B ans=0 1 0 0A=1 ans=1 0 0 0 = 不等于A=B ans=1 0 1 1A=1 ans=0 1 1 117MATLABMATLAB2、逻辑运算符 表2.13.2表2.13.4 非例:A=5 -4 0 -0.5 B=0 1 0 9& 与| 或A&B=0 1 0 1 A&1=1 1 0 1A|B

10、=1 1 0 1 A|1=1 1 1 1A=0 0 1 0 1=018MATLABMATLAB2.2 字符串、元胞和架构数组字符串、元胞和架构数组一、字符串数组二、元胞数组三、构架数组19MATLABMATLAB一、字符串数组(Character String Array)创建方法:用单引号括起来,如 matlab 例:cleara=12345.67890;a_c=class(a)b= matlab;b_c=class(b)whos注:注:1)每个字符用)每个字符用两个字节表示,两个字节表示,2)单引号对必须在)单引号对必须在英文状态下输入英文状态下输入20MATLABMATLAB例:clea

11、ra=This is an example. size(a)ans=1 19字符串中的英文字母、空格和字符串中的英文字母、空格和标点均占一个元素位(字符)标点均占一个元素位(字符)例:cleara=Example2.2-1是一个算例。size(a)a=Example2.2-1是一个算例。ans=1 19每个中文字符也占一个元素位置;每个中文字符也占一个元素位置;每个单引号符用每个单引号符用“连续的连续的2个单引个单引号符号符”表示表示字符串数组的标识:21MATLABMATLAB字符串的ASCII码:例:cleara=This is an example.d=double(a)d= 84 10

12、4 105 115 32 105 115 32 97 110 32 101 120 97 109 112 108 101 46char(d)ans =This is an example.22MATLABMATLAB常用串转换函数和串操作函数:num2str-数字转换成字符串str2num-字符串转换成数字lower-字符串变为小写upper-字符串变为大写eval-把字符串当作指令运行strcmp(s1,s2)-若串s1,s2相同,则返回逻辑1strcat(s1,s2,.)-把串s1,s2等连接成长串表3.1.1,表3.1.2a=eval(sqrt(2)a=1. 414223MATLABMA

13、TLAB二、元胞数组(Cell Array)元胞数组的元素是元胞;元胞可存放任何一种数据类型;每一个元胞可具有不同的尺寸,占用不同的内存空间;同一元胞数组中各个元胞的内容可以不同。24MATLABMATLAB例:C_Str=char(这是,元胞数组创建算例1)R=reshape(1:9,3,3)Cn=1+2iS_sym=sym(sin(-3*t)*exp(-t)外标识元胞元素赋值法编址元胞元素内涵的直接赋值法四种不同类四种不同类型的数据型的数据注意圆括号与注意圆括号与花括号的区别花括号的区别元胞数组的创建和显示:25MATLABMATLAB常用指令:cell-创建空元胞数组celldisp-显

14、示元胞数组内容cellplot-用图形形象化表示元胞数组的内容num2cell-数组元素存为元胞元素cell2mat-把合适的元胞数组变换为单一的矩阵不同的颜色表示数据类型不同26MATLABMATLAB三、构架数组构架数组的基本组分是构架;构架由域组成,每一个构架可包含多个域;构架不能直接存放数据,数据只能存放在域中;构架的域可以存放任何类型、任何大小的数组。不同构架的同名域中可以存放不同类型的内容。27MATLABMATLAB例:构架数组的创建和显示:28MATLABMATLAB 数组类型 基本组分 组分内容基本组分所占用字节数数值数组 元素双精度实数标量双精度复数标量 8 16字符串数组

15、 元素 字符 2元胞数组 元胞存放任意类型、任意大小的数据 不定构架数组 构架只有构架的“域”可以存放数据,数据可以是任意类型、任意大小 不定数据类型归纳数据类型归纳29MATLABMATLAB2.3 数值计算数值计算一、随机数据的统计描述二、多项式拟合三、插值四、稀疏矩阵30MATLABMATLAB一、随机数据的统计描述1.描述数据“位置”和“散度”的矩特征一阶矩:mean, median, geomean二阶矩:std, var, range2.如何获得数据的分布模式?频数直方图N, xxn=hist(X, nxn)-计算或绘制样本X的频数直方图TN, R=rose(theta, nth)

16、-计算或绘制样本theta的频数扇形图31MATLABMATLAB例:32MATLABMATLAB3.几种典型的分布函数泊松分布: R=poissrnd(Lambda,m,n)正态分布:R=normrnd(Mu,Sigma,m,n)2分布:R=chi2rnd(V,m,n)注意:初始化注意:初始化 rand(state,kk) randn(seed,kk) rand(seed,kk)33MATLABMATLAB二、多项式拟合原理:原理:给定一组数据(xi,yi),i=1,2,.,N,采用多项式模型对数据进行描述(f(a,x)=a1xn+a2xn-1+.+anx+an+1),求多项式参数a1, a

17、2,., an, an+1,使得下列2量最小。Matlab实现:实现:a,S=polyfit(x,y,n) -计算n阶拟合多项式的系数ye,delta=polyval(a,x,S)-计算拟合多项式值的范围S是架构数组,有3个域:S.R-QR分解后的R矩阵;S.df-相应2量的自由度;S.normr-拟合残差的2-范数34MATLABMATLAB曲线拟合的几个问题:1)采用什么函数模型?2)模型的结构参数是什么?3)参数的估计值如何计算?4)如何估计参数的离差?举例:采用多项式模型;结构参数(模型阶数)通过2量确定;参数估计(多项式系数)运用最小二乘估计,并给出相应的离差a)估计参数下的估计参数

18、下的 2量与其自由度相近;量与其自由度相近;b)Q( 2,N-(n+1)=1-P( 2 (N-n-1)与与0.5接近接近35MATLABMATLAB例:用多项式拟合给定数据x=0:0.1:1;y=2.1,2.3,2.5,2.9,3.2,3.3,3.8,4.1,4.9,5.4,5.8; %被拟合数据dy=0.15;for n=1:6a,S=polyfit(x,y,n); %计算拟合多项式,阶次分别取16An=a; %用元胞数组记录多项式系数da=dy*sqrt(diag(inv(S.R*S.R); %计算系数的误差DAn=da;freedom(n)=S.df; %记录自由度ye,delta=po

19、lyval(a,x,S); %计算拟合多项式值的范围YEn=ye; %记录拟合多项式的均值Dn=delta; %记录拟合多项式的离差chi2(n)=sum(y-ye).2)/dy/dy; %计算2量endQ=1-chi2cdf(chi2,freedom); %计算判断拟合良好度的Q36MATLABMATLAB%图形显示比较2量与自由度,以及Q与0.5subplot(1,2,1), plot(1:6,abs(chi2-freedom),b.-)xlabel(阶次), title(chi2与自由度)subplot(1,2,2), plot(1:6,Q,r*-,1:6,ones(1,6)*0.5)x

20、label(阶次), title(Q与0.5线)根据结果,模根据结果,模型阶数应选择型阶数应选择3或或437MATLABMATLAB验证结果:(选择三阶多项式)figure, plot(x,y,r*); %被拟合数据axis(0,1,1,6); hold onerrorbar(x,YE3,D3,b); %拟合曲线及误差范围title(较适当的三阶拟合)38MATLABMATLAB三、插值根据给定的“基准数据”,研究如何“平滑”地估算“基准数据”之间其它点的函数值1.一维插值z=interp1(x,y,x0,method)插值方法(method): nearest, linear, spline

21、, cubic2.二维插值z=interp2(x,y,z,x0,y0,method)插值方法(method): nearest, linear, cubic39MATLABMATLAB例:假设有一组海底深度测量数据,采用插值方式绘制海底形状图。load sea.matfigure,surf(X,Y,Z);view(-25,25) %显示测量数据xi=linspace(-5,5,50);yi=linspace(-5,5,50);X1,Y1=meshgrid(xi,yi); %待估算数据Z1=interp2(X,Y,Z,X1,Y1,*cubic); %采用多项式插值,并绘制数据figure,sur

22、f(X1,Y1,Z1);view(-25,25)40MATLABMATLAB四、稀疏矩阵1、什么是稀疏矩阵?只有少数非零元素(通常是大矩阵,采用稀疏存储方式)2、什么是稀疏存储?1)只存储矩阵的非零元素,且按列进行存储2)每一列数据,用一个实数(或复数)数组记录非零元素值,用一个整数数组记录对应非零元素的下标3、稀疏矩阵的创建SM=sparse(I,J,S,m,n,nzmax)SM=sparse(A)节省内存和时间开销节省内存和时间开销41MATLABMATLAB例:比较全元素矩阵、稀疏矩阵、最小排序稀疏矩阵三角分解所需时间load sparsemat.mat %调用数据A(稀疏矩阵)、B (

23、基于A的最小排序稀疏矩阵) 、C(基于A的全元素矩阵)subplot(1,2,1),spy(A,b,10),title(Spy plot of matrix A) %绘制A、Bsubplot(1,2,2),spy(B,b,10),title(Matrix A with minimum degree ordering)format short etic, L1=chol(A);t1=toc;tic, L2=chol(B);t2=toc;tic, L1=chol(C);t3=toc;t3/t1,t3/t2说明稀疏存储方式节说明稀疏存储方式节约了大量运行时间约了大量运行时间42MATLABMATLA

24、B2.4 符号计算符号计算一、符号表达式二、符号微积分三、符号方程求解43MATLABMATLAB一、符号表达式1.符号对象(构成符号表达式的元素,包括数字、代数或有理运算和符号变量的字符串)定义符号对象的指令:sym, syms例:比较数值矩阵、字符串、符号变量clear, a=1; b=2; c=3; d=4;Mn=a,b;c,d; %数值矩阵Mc=a,b;c,d; %字符串Ms=sym(Mc) %符号变量whos Mn Mc Ms2.符号计算中的算符和基本函数(与数值计算几乎完全相同)基本运算符,关系运算符,三角函数,指数、对数函数等44MATLABMATLAB例:用符号计算验证三角等式

25、sin1cos2-cos1sin2 =sin(1-2).syms fai1 fai2; y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2)y=sin(fai1-fai2)例:求矩阵A=a11 a12; a21 a22的行列式、逆和特征根syms a11 a12 a21 a22; A=a11 a12; a21 a22;DA=det(A), IA=inv(A), EA=eig(A)注意:定义多个变量时,只能用注意:定义多个变量时,只能用“空格空格”间隔变量,不能用逗号或分号间隔变量,不能用逗号或分号45MATLABMATLAB常用指令:numden-提

26、取有理分式的分子分母symadd,symsub,symmul,symdiv-分别是+,-,*,/collect-合并同类项,降幂排列factor-因式分解expand展开compose-复合函数finverse-逆函数sym2poly-符号表达式转换为多项式simplify化解表达式46MATLABMATLAB二、符号微积分1.符号微分指令:diff(f)例:求syms a t x;f=a, t3; t*cos(x), log(x);df=diff(f)dfdt2=diff(f, t, 2)dfdxdt=diff(diff(f, x), t)47MATLABMATLAB2.符号积分指令:int

27、(f)例:求积分注意:内积分上下限都是函数syms x y z;f2=int(int(int(x2+y2+z2,z,sqrt(x*y),x2*y),y,sqrt(x),x2),x,1,2)vf2=vpa(f2) %积分结果用32位数字表示int(x2+y2+z2,z,sqrt(x*y),x2*y)int(int(x2+y2+z2,z,sqrt(x*y),x2*y),y,sqrt(x),x2)int(int(int(x2+y2+z2,z,sqrt(x*y),x2*y),y,sqrt(x),x2),x,1,2)48MATLABMATLAB三、符号方程求解1. 代数方程或方程组指令:solve例:求

28、线性方程组的解。数值计算: (改写成矩阵形式)A=1 1/2 1/2 -1; 1 1 -1 1; 1 -1/4 -1 1; -8 -1 1 1;b=0;10;0;1; x1=Abx1=1.00008.00008.00009.0000符号计算:syms d n p q;f1=d+n/2+p/2=q;f2=n+d+q-p=10;f3=q+d-n/4=p;f4=q+p-n-8*d=1;d, n, p, q=solve(f1,f2,f3,f4)d=1 n=8 p=8 q=949MATLABMATLAB2.求解微分和微分方程组指令:dsolve例:求解两点边值问题:xy”-3y=x2,y(1)=0,y(5)=0记述规定:当y是应变量时,用“Dny”表示y的n阶导数y=dsolve(x*D2y-3*Dy=x2,y(1)=0,y(5)=0,x)y = (31*x4)/468 - x3/3 + 125/468数值计算解法比较复杂;【参考“常微分方程的ODE解算”】50

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号