您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > MATLAB上机答案
1一熟悉Matlab工作环境1、熟悉Matlab的5个基本窗口思考题:(1)变量如何声明,变量名须遵守什么规则、是否区分大小写。答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:变量名必须以字母开头,只能由字母、数字或下划线组成。变量名区分大小写。变量名不能超过63个字符。关键字不能作为变量名。最好不要用特殊常量作为变量名。(2)试说明分号、逗号、冒号的用法。分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。(3)linspace()称为“线性等分”函数,说明它的用法。LINSPACELinearlyspacedvector.线性等分函数LINSPACE(X1,X2)generatesarowvectorof100linearlyequallyspacedpointsbetweenX1andX2.以X1为首元素,X2为末元素平均生成100个元素的行向量。LINSPACE(X1,X2,N)generatesNpointsbetweenX1andX2.ForN2,LINSPACEreturnsX2.以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。ClasssupportforinputsX1,X2:float:double,single数据类型:单精度、双精度浮点型。(4)说明函数ones()、zeros()、eye()的用法。ones()生成全1矩阵。zeros()生成全0矩阵。eye()生成单位矩阵。2、Matlab的数值显示格式2思考题:(1)3次执行exist(’pi’)的结果一样吗?如果不一样,试解释为什么?pians=3.1416sin(pi);exist('pi')ans=5pi=0;exist('pi')ans=1pipi=0clearexist('pi')ans=5pians=3.1416答:3次执行的结果不一样。exist()函数是返回变量搜索顺序的一个函数。在第一次执行时返回5代表变量pi是由Matlab构建的变量。在第二次执行时已经通过赋值语句定义了变量pi,返回1代表pi是工作空间变量。第三次执行前清除了工作空间,此时pi为系统默认常量,和第一次执行时性质一样,所以又返回5。(2)圆周率pi是系统默认常量,为什么会被改变为0。pi=0为赋值语句,此时pi不再是系统默认常量,而是定义的变量了。二MATLAB语言基础1、向量的生成和运算练习:使用logspace()创建1~4π的有10个元素的行向量。A=logspace(0,1.0992,10)A=1.00001.32471.75502.32493.07994.08015.40517.16039.485612.56612、矩阵的创建、引用和运算(1)矩阵的创建和引用练习:创建以下矩阵:A为3×4的全1矩阵、B为3×3的0矩阵、C为3×3的单位矩阵、D为3×3的魔方阵、E由C和D纵向拼接而成、F抽取E的2~5行元素生成、G由F经变形为3×4的矩阵而得、以G为子矩阵用复制函数生成6×8的大矩阵H。A=ones(3,4),B=zeros(3,3),C=eye(3,3),D=magic(3)A=1111111111113B=000000000C=100010001D=816357492E=[C;D],F=E(2:5,:),G=reshape(F,3,4)E=100010001816357492F=010001816357G=031101568007H=repmat(G,2)H=03110311015601568007800703110311015601564800780072)矩阵运算练习:1)用矩阵除法求下列方程组的解x=错误!未找到引用源。A=[634;-257;8-1-3],B=[3;-4;-7]A=634-2578-1-3B=3-4-7x=A\Bx=1.0200-14.00009.72002)求矩阵的秩;r=rank(A)r=33)求矩阵的特征值与特征向量[X,Lamda]=eig(A)X=0.8013-0.1094-0.16060.3638-0.65640.86690.47490.7464-0.4719Lamda=9.7326000-3.29280001.56024)矩阵的乘幂(平方)与开方A^2ans=622933341262622345A1=sqrtm(A)A1=2.2447+0.2706i0.6974-0.1400i0.9422-0.3494i-0.5815+1.6244i2.1005-0.8405i1.7620-2.0970i1.9719-1.8471i-0.3017+0.9557i0.0236+2.3845i5)矩阵的指数与对数(以e为底)Ae=expm(A)Ae=1.0e+004*1.06530.54150.63230.48300.24650.28760.63160.32060.3745Ael=logm(A)Ael=1.7129+0.4686i0.5305-0.2425i0.5429-0.6049i1.1938+2.8123i0.3658-1.4552i-0.5514-3.6305i-0.0748-3.1978i0.7419+1.6546i1.8333+4.1282i6)矩阵的提取(取右上三角)与翻转(逆时针转90度)a=triu(A)a=63405700-3a1=rot90(A)a1=47-335-16-283、多维数组的创建及运算练习:创建三维数组A,第一页为错误!未找到引用源。,第二页为错误!未找到引用源。,第三页为错误!未找到引用源。。然后用reshape函数重排为数组B,B为3行、2列、2页。a=[13;42],b=[12;21],c=[35;71]A=cat(3,a,b,c)A(:,:,1)=1342A(:,:,2)=12216A(:,:,3)=3571B=reshape(A,3,2,2)B(:,:,1)=124132B(:,:,2)=271531三Matlab数值运算1、多项式运算练习:求错误!未找到引用源。的商及余多项式。p1=conv([101],conv([13],[11]))p1=14443[qr]=deconv(p1,[1021])q=14r=002-5-12、多形式插值和拟合有一组实验数据如附表1-1所示。请分别用拟合(二阶至三阶)和插值(线性和三次样条)的方法来估测X=9.5时Y的值X12345678910Y163270142260436682101014321960x=1:10;y=[163270142260436682101014321960];p1=polyfit(x,y,1)p1=204.8000-522.4000y1=polyval(p1,9.5)y1=1.4232e+003p2=polyfit(x,y,2),y2=polyval(p2,9.5)p2=32.0000-147.2000181.6000y2=1.6712e+0037p3=polyfit(x,y,3),y3=polyval(p3,9.5)p3=2.0000-1.00005.000010.0000y3=1.6820e+003y4=interp1(x,y,9.5)y4=1696y5=spline(x,y,9.5)y5=16823、习题(1)用函数roots求方程错误!未找到引用源。的根roots([1-1-1])ans=-0.61801.6180(2)错误!未找到引用源。,在n个节点(n不要太大,如取5~11)上用分段线性和三次样条插值方法,计算m个插值点(m可取50~100)的函数值。通过数值和图形输出,将两种插值结果与精度进行比较。适当增加n,再作比较。x=linspace(0,2*pi,8),y=sin(x)x=00.89761.79522.69283.59044.48805.38566.2832y=00.78180.97490.4339-0.4339-0.9749-0.7818-0.0000xi=linspace(0,2*pi,100);y0=sin(xi);y1=interp1(x,y,xi);y2=interp1(x,y,xi,'spline');plot(xi,y0,'*',xi,y1,'-.',xi,y2)801234567-1-0.8-0.6-0.4-0.200.20.40.60.81e1=y1-y0;e2=y2-y0;plot(xi,e1)01234567-0.1-0.08-0.06-0.04-0.0200.020.040.060.080.1plot(xi,e2)901234567-0.015-0.01-0.00500.0050.010.015(3)大气压强p随高度x变化的理论公式为错误!未找到引用源。,为验证这一公式,测得某地大气压强随高度变化的一组数据如表所示。试用插值法和拟合法进行计算并绘图,看那种方法较为合理,且总误差最小。高度/m0300600100015002000压强/Pa0.96890.93220.89690.85190.79890.7491插值法:x=[0300600100015002000];p=[0.96890.93220.89690.85190.79890.7491];xi=linspace(0,2000);p0=1.0332*exp(-(xi+500)/7756);p1=interp1(x,p,xi,'spline');plot(xi,p0,'*',xi,p1)e1=p1-p0;e=sum(e1.^2)e=1.8652e-005拟合法:x=[0300600100015002000];p=[0.96890.93220.89690.85190.79890.7491];P=log10(p)10P=-0.0137-0.0305-0.0473-0.0696-0.0975-0.1255p1=polyfit(x,P,1)p1=-0.0001-0.0137b=p1(1)/0.4343,a=10.^p1(2)b=-1.2863e-004a=0.9689xi=linspace(0,2000);p0=1.0332*exp(-(xi+500)/7756);p2=polyval(p1,xi);P2=10.^p2;e2=P2-p0;e=sum(e2.^2)e=1.8116e-00511四Matlab数值运算1、数值微积分练习:瑞士地图如图所示,为了算出其国土面积,首先对地图作如下测量:以由西向东方向为X轴,由南到北方向为Y轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,根据地图比例尺知道18mm相当于40km,试由测量数据计算瑞士国土近似面积,与其精确值41228km2比较。X710.51317.53440.544.548566168.576.580.591Y14445475050383030343634414546Y24459707293100110110110117118116118118X96101104106.5111.5118123.5136.5142146150157158Y143373328326555545250666668Y2121124121121121116122838182868568x=[7,10.5,13,17.5,34,40.5,44.5,48,56,61,68.5,76.5,
本文标题:MATLAB上机答案
链接地址:https://www.777doc.com/doc-6046800 .html