MATLAB上机答案
matlab上机练习答案
实验一MA TLAB的基本命令与基本函数1已知矩阵a =11 12 13 1421 22 23 2431 32 33 3441 42 43 44求(1) A(:,1) (2) A(2,:)(3) A(:,2:3) (4) A(2:3,2:3)(5) A(:,1:2:3) (6) A(2:3)(7) A(:) (8) A(:,:)(9) ones(2,2) (10) eye(2)(11) [A,[ones(2,2);eye(2)]](12) diag(A) (13) diag(A,1)(14) diag(A,-1) (15) diag(A,2)2(1)输入如下矩阵A0π/3A=π/6 π/2(2) 求矩阵B1,B1中每一元素为对应矩阵A中每一元素的正弦函数(3) 求矩阵B2, B2中每一元素为对应矩阵A中每一元素的余弦函数(4) 求B12+B22(5) 求矩阵A的特征值与特征矢量:称特征矢量为M,而特征值矩阵为L(6) 求Msin(L)M-13已知水的黏度随温度的变化公式为μ=μ0/(1+at+bt2)其中μ0=1.785×10-3,a=0.03368,b=0.000221,求水在0,20,40,80℃时的黏度。
程序如下:miu0=1.785e-3;a=0.03368;b=0.000221;t=0:20:80miu=miu0./ (1+a*t+b*t.^2)(2)一个长管,其内表面半径为a,温度为Ta ;外表面半径为Tb;则其径向和切向应力可分别表示为:⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛+----=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛----=r b a b r b a b a a b v T T E r b a b r b a b a a b v T T E b a t b a r ln ln 11)/ln()1(2)(ln ln 1)/ln()1(2)(2222222222ασασ式中r 为管子的径向坐标,E 为管子材料的弹性模量,ɑ为热膨胀系数。
matlab上机实验答案
三、假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵,用magic(8)A =命令生成A 矩阵,用上述命令检验一下结果是不是正确。
>> A=magic(8) A =64 2 3 61 60 6 7 57 9 55 54 12 13 51 50 16 17 47 46 20 21 43 42 24 40 26 27 37 36 30 31 33 32 34 35 29 28 38 39 25 41 23 22 44 45 19 18 48 49 15 14 52 53 11 10 56 8 58 59 5 4 62 63 1 >> B=A(2:2:end,:)B =9 55 54 12 13 51 50 16 40 26 27 37 36 30 31 33 41 23 22 44 45 19 18 48 8 58 59 5 4 62 63 1五、选择合适的步距绘制出下面的图形。
(1))/1sin(t ,其中)1,1(-∈t ; (2))tan(sin )sin(tan t t -,其中),(ππ-∈t 。
1.>> t=[-1:0.0001:1];y=sin(1./t);plot(t,y) Warning: Divide by zero. >>2.>> t=[-pi:0.001:pi];y=sin(tan(t))-tan(sin(t));plot(t,y) >>七、试求出如下极限。
(1)x xx x 1)93(lim +∞→; (2)11lim00-+→→xy xy y x ; (3)22)()cos(1lim222200yx y x ey x y x +→→++-。
(1)>> syms x;f=(3^x+9^x)^(1/x);limit(f,x,inf)ans =9(2)>> syms x y;f=x*y/(sqrt(x*y+1)-1);limit(limit(f,x,0),y,0) ans =2(3)>> syms x y;f=(1-cos(x^2+y^2))/(x^2+y^2)*exp(x^2+y^2);limit(limit(f,x,0),y,0) ans =0九、假设⎰-=xytt ey x f 0d ),(2,试求222222yf yx f xf y x ∂∂+∂∂∂-∂∂。
matlab上机实验答案-整理版
第一次实验答案1. 设要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。
clcclearx=0:0.01:1.5;y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3)y1=diff(y)subplot(2,1,1)plot(x,y)subplot(2,1,2)plot(x(1:150),y1)2绘制极坐标系下曲线(a,b,n 自定数据)clccleara=10;b=pi/2;n=5;theta=0:pi/100:2*pi;rho=a*cos(b+n*theta);polar(theta,rho)3. 列出求下列空间曲面交线的程序clcclearx=[-5:0.5:5];[X,Y]=meshgrid(x);z1=X.^2-2*Y.^2;z2=X.*2-Y.*3;xlabel('x')ylabel('y')zlabel('z')surf(X,Y,z1)hold onsurf(X,Y,z2)k=find(abs(z1-z2)<0.5);x1=X(k)y1=Y(k)z3=x1.^2-2*y1.^2hold onplot3(x1,y1,z3,'*')⎪⎭⎫ ⎝⎛+⋅=-334sin 234πt e y t ()θρn b a +=cos 2212y x z -=y x z 322-=4、设 ⎥⎦⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y 把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线,要求有图形标注。
clcclearx=-2*pi:0.1: 2*pi;y=cos(x).*(0.5+sin(x)*3./(1+x.^2));plot(x,y,'b*-');title('绘图');xlabel('x 坐标');ylabel('y 坐标');legend('原函数')gtext('y=cos(x)(0.5+3*sin(x)/(1+x^2))')5、求下列联立方程的解81025695832475412743-=+-+-=-+-=++-=--+w z y x w z x w z y x w z y x clccleara=[3,4,-7,-12;5,-7,4,2;1,0,8,-5;-6,5,-2,10];b=[4,-3,9,-8];c=b/a;x=c(1,1)y=c(1,2)z=c(1,3)w=c(1,4)6. 假设一曲线数据点为x = 0:2:4*pi;y = sin(x).*exp(-x/5);试将x 的间距调成 0.1,采用不同插值方法进行插值,并通过子图的形式将不同插值结果和原始数据点绘制在同一图形窗口。
Matlab上机练习题及答案
Matlab 上机练习题及答案---------------------------------------------------------------------1、矩阵Y=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡3472123100451150425,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。
取出子矩阵⎥⎦⎤⎢⎣⎡21301,并求该矩阵的维数。
解:命令为:Y=[5,2,4;0,15,1;45,100,23;21,47,3]Y(2,3)Y(10)sub2ind([43],2,3)[i,j]=ind2sub([43],10)find(Y==100)sub2ind([43],3,2)B=Y(2:2:4,3:-2:1)或B=Y([24],[31])[m n]=size(Y)---------------------------------------------------------------------2、已知矩阵A=[10-1;241;-205],B=[0-10;213;112]求2A+B 、A 2-3B 、A*B 、B*A 、A.*B ,A/B 、A\B 解:命令为:A=[10-1;241;-205]B=[0-10;213;112]E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B---------------------------------------------------------------------3、利用函数产生3*4阶单位矩阵和全部元素都为8的4*4阶矩阵,并计算两者的乘积。
解:命令为:A=eye(3,4)B=8*ones(4)C=A*B---------------------------------------------------------------------4、创建矩阵a=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------7023021.5003.120498601,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b构成矩阵d ,计算a*b 、c<d ,c&d,c|d ,~c|~d 解:命令为:a=[-1,0,-6,8;-9,4,0,12.3;0,0,5.1,-2;0,-23,0,-7]b=a(:,[12])c=a([12],:)d=b’e=a*b f=c<d g=c&d h=c|d i=~c|~d---------------------------------------------------------------------5、求!201∑=n n 解:命令文件为sum=0;s=1;for n=1:20s=n*s;sum=sum+s;end sum---------------------------------------------------------------------6、求a aa aaa aa a S n ++++=得值,其中a 是一个数字,由键盘输入,表达式中位数最多项a 的个数,也由键盘输入。
MATLAB上机答案
X
1
2
3
4
5
6
7
8
9
10
Y
16
32
70
142 260 436 682 1010 1432 1960
>> x=1:10;y=[16 32 70 142 260 436 682 1010 1432 1960];
>> p1=polyfit(x,y,1)
>>
p1 =
p2=polyfit(x,y,2),y2=polyval(p2,9.5)
0.01
0.005
0
-0.005
-0.01
-0.015
0
1
2
3
4
5
6
7
(3)大气压强 p 随高度 x 变化的理论公式为
,为验证这一公式,
测得某地大气压强随高度变化的一组数据如表所示。试用插值法和拟合法进行计算并绘图,
看那种方法较为合理,且总误差最小。
高度/m
0
300
600
1000
1500
2000
压强/Pa
equally spaced points between X1 and X2. 以 X1 为首元素,X2 为末元素平均生成 100 个元素的行向量。
LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2.
ans =
pi =
ans =
5
0
3.1416
答:3 次执行的结果不一样。exist()函数是返回变量搜索顺序的一个函数。在第一次
matlab上机练习及答案
第二、三次上机练习:目的:运行课本第四章及课堂上讲过的例子,掌握Matlab 的流程控制语句、函数及脚本文件的编程、调试方法。
作业:1、 完成下列操作:1) 求[100,999]之间能被21整除的个数。
2) 建立一个字符串向量(要求字符串向量中必须包含自己的姓名首字母,大小写均可),删除其中的大写字母2. 编写脚本文件,实现用magic(6)产生一矩阵,用for 循环指令求解其所有元素的和。
3. 定义一个函数文件,求∑=ni m i 1,要求在函数文件中包含能够通过help 查询到的说明;然后调用该函数文件求∑∑∑===++101501210011k k k k k k 的值。
4. 已知)7.1cos(12ln )7.1sin(++++=x xx y π,当x 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时, 1) 求各点的函数值;2) 求这些数据的平均值;5、求分段函数的值。
222603565231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩, 且, 0且及, 其它用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5时的值。
6、输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:分别用if 语句和switch 语句实现。
7、根据222221111...,6123n ππ=++++求的近似值。
当n 分别取100、1000、10000时,结果是多少?(要求:分别用循环结构和向量运算来实现)8、已知n=1时,f 1=1;n=2时,f 2=0;n=3时,f 3=1;n>3时,f n =f n-1 -2f n-2+ f n —3; 求f 1~ f 100中,最大值、最小值以及各数之和。
Matlab上机实验答案
4. 完成下列操作: (1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。 >> n=100:999; >> l=find(rem(n,21)==0); >> length(l)
ans =
43
>> ch='aegbBOIEG0je23RGnc';
150 335 520 705 890
77 237 397 557 717
>> D=C(3:5,2:3)
D=
520 705 890 >> whos Name
397 557 717
Size
Bytes Class
Attributes
A B C D
5x5 5x3 5x3 3x2
200 double 120 double 120 double 48 double
(2) >> A*B ans =
68 309 154 >> A.*B ans =
44 -72 -5
62 596 241
(3) >> A^3 ans =
12 102 68 0 9 -130
4 261 49
37226 247370 78688
233824 149188 454142
48604 600766 118820
>> A.^3 ans = 1728 39304 27 39304 343 274625 -64 658503 343
(4) >> A/B ans =
16.4000 -13.6000 35.8000 -76.2000 67.0000 -134.0000 >> B\A ans =
Matlab上机题库及详细答案_Tonyxie
ax 2 + bx + c 0.5 ≤ x < 1.5 = y a sin c b + x 1.5 ≤ x < 3.5 c ln b + 3.5 ≤ x < 5.5 x
clc;clear; a=input('Please input a= '); b=input('Please input b= '); c=input('Please input c= '); x=input('Please input x= '); disp('#if#'); if x>=0.5&x<1.5 y=a*x^2+b*x+c elseif x<3.5&x>=1.5 y=a*sin(b)^c+x elseif x>=3.5&x<5.5 y=log(abs(b+(c./x))) else y='ERROR!' end disp('#switch#') switch(x*10/5) case {1 2} y=a*x^2+b*x+c case {3 4 5 6} y=a*sin(b)^c+x case {7 8 9 10} y=log(abs(b+(c./x))) otherwise y='ERROR!' end
பைடு நூலகம்
8、数值与符号计算
ex (1)求极限 lim x →+∞ a + be x
(3)已知线性方程组 Ax=b,其中
(2)求不定积分
∫ xe
ax
Matlab上机题及答案
1 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。
输出全部水仙花数。
for m=100:999m1=fix(m/100); %求m的百位数字m2=rem(fix(m/10),10); %求m的十位数字m3=rem(m,10); %求m的个位数字if m==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend2.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
sum=0;n=0;val=input('Enter a number (end in 0):');while (val~=0)sum=sum+val;n=n+1;val=input('Enter a number (end in 0):');endif (n > 0)summean=sum/nend3. 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,500]之间的全部完数。
for m=1:500s=0;for k=1:m/2if rem(m,k)==0s=s+k;endendif m==sdisp(m);endend4. 从键盘上输入数字星期,在屏幕上显示对应英文星期的单词。
function weekn=input('input the number:');if isempty(n)errror('please input !!')endif n>7|n<1error('n between 1 and 7')endswitch ncase 1disp('Monday')case 2disp('Tuesday')case 3disp('Wednesday')case 4disp('Thursday')case 5disp('Friday')case 6disp('Saturday')case 7disp('Sunday')end5. 某公司销售电脑打印机的价格方案如下:()如果顾客只买一台打印机,则一台的基本价格为$150。
MATLAB上机实验1答案
实验1 Matlab 初步一、问题已知矩阵A 、B 、b 如下:⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡-------------=031948118763812654286174116470561091143A ⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡------=503642237253619129113281510551201187851697236421B []1187531=b应用Matlab 软件进行矩阵输入及各种基本运算。
二、实验目的学会使用Matlab 软件构作已知矩阵对应的行(列)向量组、子矩阵及扩展矩阵,实施矩阵的初等变换及线性无关向量组的正交规范化,确定线性相关相关向量组的一个极大线性无关向量组,且将其余向量用极大线性无关向量组线性表示,并能编辑M 文件来完成所有的实验目的。
三、预备知识1、 线性代数中的矩阵及其初等变换、向量组的线性相关性等知识。
2、 Matlab 软件的相关命令提示如下;(1) 选择A 的第i 行做一个行向量:ai=A(i,:);(2) 选择A 的第j 行做一个列向量:ai=A(j,:);(3) 选择A 的某几行、某几列上的交叉元素做A 的子矩阵:A([行号],[列号]);(4) n 阶单位阵:eye(n);n 阶零矩阵:zeros(n);(5) 做一个n 维以0或1为元素的索引向量L ,然后取A(:,L),L 中值为1的对应的列将被取到。
(6) 将非奇异矩阵A 正交规范化,orth(A) ;验证矩阵A 是否为正交阵,只需做A*A'看是否得到单位阵E 。
(7) 两个行向量a1和a2的内积:a1*a2'。
(8) 让A 的第i 行与第j 列互换可用赋值语句:A([i,j],:)=A([j,i],:);(9)让K乘以A的第i行可用赋值语句:A(i,:)=K*A(i,:);(10)让A的第i行加上第j行的K倍可用赋值语句:A(i,:)=A(i,:)+K*A(j,:);(11)求列向量组的A的一个极大线性无关向量组可用命令:rref(A)将A化成阶梯形行的最简形式,其中单位向量对应的列向量即为极大线性无关向量组所含的向量,其它列向量的坐标即为其对应向量用极大线性无关组线性表示的系数。
Matlab上机题库及详细答案
解:c=input('请输入一个字符','s');
if c>='A' & c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A')));
elseif c>='a'& c<='z'
disp(setstr(abs(c)- abs('a')+abs('A')));
(2)均值为0.6方差为0.1的5阶正态分布随机矩阵
解:>>x=20+(50-20)*rand(5);
>>y=0.6+sqrt(0.1)*randn(5)
例13:将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。
解:M=100+magic(5)
M =117 124 101 108 115
-0.4606
0.3848
例2、用简短命令计算并绘制在0x6范围内的sin(2x)、sinx2、sin2x。
解:x=linspace(0,6)
y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;
plot(x,y1,x, y2,x, y3)
例3:画出指数衰减曲线y1=exp(-t/3)*sin(3*t)和它的包络y2=exp(-t/3),t的取值范围是(0,4pi)。
matlab上机考试答案
上机考试答案试题一:fid=fopen('table.txt','r');b=fscanf(fid,'%f');s=b';fclose(fid);t1=1;t2=1;t3=1;t4=1;t5=1;for i=1:11if s(i)>=90 & s(i)<=100A(t1)=s(i);t1=t1+1;elseif s(i)>=80 & s(i)<=89B(t2)=s(i);t2=t2+1;elseif s(i)>=70 & s(i)<=79C(t3)=s(i);t3=t3+1;elseif s(i)>=60 & s(i)<=69D(t4)=s(i);t4=t4+1;else s(i)>=0 & s(i)<=59E(t5)=s(i);t5=t5+1;endendif t1= =1disp('90分以上的学生人数:');k1=0elsedisp('90分以上的学生人数:');k1=length(A)endif t2= =1disp('80到89之间的学生人数:');k2=0elsedisp('80到89之间的学生人数:');k2=length(B)endif t3= =1disp('70到79之间的学生人数:'); k3=0elsedisp('70到79之间的学生人数:'); k3=length(C) endif t4= =1disp('60到69之间的学生人数:'); k4=0elsedisp('60到69之间的学生人数:'); k4=length(D) endif t5= =1disp('60以下的学生人数:'); k5=0elsedisp('60以下的学生人数:'); k5=length(E)enddisp('最高分:');k6=max(s)disp('最低分:');k7=min(s)disp('不及格率:º');k8=k5./12disp('及格率:');k9=1-k8运行结果:90分以上的学生人数:k1 =480到89分之间的学生人数:k2 =570到79分之间的学生人数:k3 =260到69分之间的学生人数:k4 =160分以下的学生人数:k5 =3最高分:k6 =98最低分:k7 =24不及格率:k8 =0.250000000000000及格率:k9 =0.750000000000000试题二:n=length(a);b=median(a);k=strfind(a,b);m=fix(n./2+1);if k>mfor i=(k-1):ma(i+1)=a(i);enda(m)=b;elseif k<mfor i=(k+1):ma(i-1)=a(i);enda(m)=b;elsea(m)=b;enda运行结果:a =1 2 5 3 10 7 6 4 0 9 11 8 13。
matlab上机考试题及答案
matlab上机考试题及答案1. 题目:编写一个MATLAB函数,计算并返回一个向量中所有元素的平方和。
答案:函数定义如下:```matlabfunction sumOfSquares = calculateSumOfSquares(vector)sumOfSquares = sum(vector.^2);end```2. 题目:使用MATLAB的内置函数,找出一个矩阵中的最大元素及其位置。
答案:可以使用`max`函数来找出矩阵中的最大元素,同时使用`find`函数来获取其位置。
示例代码如下:```matlabA = [1, 2, 3; 4, 5, 6; 7, 8, 9];[maxValue, linearIndex] = max(A(:));[row, col] = ind2sub(size(A), linearIndex);```3. 题目:给定一个向量,使用MATLAB编写代码,实现向量元素的逆序排列。
答案:可以使用`flip`函数来实现向量的逆序排列。
示例代码如下:```matlabvector = [1, 2, 3, 4, 5];reversedVector = flip(vector);```4. 题目:编写一个MATLAB脚本,计算并绘制一个正弦波的图像。
答案:可以使用`sin`函数生成正弦波数据,并使用`plot`函数绘制图像。
示例代码如下:```matlabx = linspace(0, 2*pi, 100);y = sin(x);plot(x, y);xlabel('x');ylabel('sin(x)');title('Sine Wave');```5. 题目:给定一个3x3的矩阵,使用MATLAB编写代码,计算其行列式。
答案:可以使用`det`函数来计算矩阵的行列式。
示例代码如下:```matlabmatrix = [1, 2, 3; 4, 5, 6; 7, 8, 9];determinant = det(matrix);```结束语:以上是MATLAB上机考试的题目及答案,希望能够帮助大家更好地掌握MATLAB的编程技巧和函数使用。
(完整版)matlab上机练习题答案
6 9 3 2 4 11.计算a 与b 的数组乘积2 7 5 4 6 8>> a=[6 9 3;2 7 5];>> b=[2 4 1;4 6 8];>> a.*bans =12 36 38 42 404 9 2 372.对于AX B,如果A 7 6 4 ,B 26,求解X o3 5 7 287 16 185计算多项式除法(3乂3+13*+6乂+8)/0+4)>> d=deconv([3 13 6 8],[1 4])6求欠定方程组298的最小范数解5>> a=[2 4 7 4;9 3 5 6];>> b=[8 5]';>> x=pinv(a)*b-0.2151>> A=[4 9 2;7 6 4;3 5 7]; >> B=[37 26 28]';>> X=A\BX =-0.51184.04271.33180.44590.79490.27077用符号函数法求解方程at2+b*t+c=0 >> r=solve('a*t A2+b*t+c=0','t')1 2 5 8 7 43.a ,b ,观察a与b之间的3 64 3 6 2六种关系运算的结果[1/2/a*(-b+(bA2-4*a*c)A(1/2))] [1/2/a*(-b-(bA2-4*a*c)A(1/2))]>> a=[1 2 3;4 5 6]; >> b=[8 - 4;3 6 2]; >> a>bans =0 11 0 >> a>=bans =0 11 0 >> a<bans =1 00 1 >> a<=bans =1 00 1 >> a==bans =0 00 0 >> a~=bans =1 11 1 4计算多项式乘法111111(X2+2X+2)(X2+5X+4)8求矩阵A a11 a12的行列式值、逆和特征根a 21 a22>> syms a11 a12 a21 a22;>> A=[a11,a12;a21,a22]>> AD=det(A) % 行列式>> AI=inv(A) % 逆>> AE=eig(A) % 特征值A =[a11, a12][a21, a22]AD =a11*a22-a12*a21AI =[-a22/(-a11*a22+a12*a21), a12/(-a11*a22+a12*a21)][a21/(-a11*a22+a12*a21), -a11/(-a11*a22+a12*a21)]AE =>> c=conv([1 2 2],[1 5 4]) [1/2*a11+1/2*a22+1/2*(a11A2-2*a11*a22+a22A2+4*a12*a21)A(1/2)][1/2*a11+1/2*a22-1/2*(a11A2-2*a11*a22+a22A2+4*a12*a21)A(1/2)] 9 因式分解:X45X35X25X 6>> syms X;>> f=xA4-5*xA3+5*xA2+5*x-6;>> factor(f)ans =(X-1)*(X-2)*(X-3)*(X+1)x ,用符号微分求df/dx。
Matlab上机题库及详细答案
case num2cell(25:49) %价格大于等于2500但小于5000
Байду номын сангаасrate=10/100;
otherwise %价格大于等于5000
rate=14/100;
end
price=price*(1-rate) %输出商品实际销售价格
例19已知,当n=100时,求的值。
解:程序如下:
y=0;n=100;for i=1:n;y=y+1/(2*i-1);End
例20:一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数
解:for m=100:999
m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);
if m==m1*m1*m1+m2*m2*m2+m3*m3*m3;disp(m);end
D=diag(1:5);D*A %用D左乘A,对A的每行乘以一个指定常数
例15:输入x,y的值,并将它们的值互换后输出。
程序如下:
x=input('Input x please.');y=input('Input y please.');z=x;x=y;y=z;
disp(x);disp(y);
例16::求一元二次方程ax2 +bx+c=0的根。
switch fix(price/100)
case {0,1} %价格小于200
rate=0;
case {2,3,4} %价格大于等于200但小于500
rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000
matlab上机实验答案
matlab上机实验答案三、假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数⾏提取出来,赋给B 矩阵,⽤magic(8)A =命令⽣成A 矩阵,⽤上述命令检验⼀下结果是不是正确。
>> A=magic(8) A =64 2 3 61 60 6 7 57 9 55 54 12 13 51 50 16 17 47 46 20 21 43 42 24 40 26 27 37 36 30 31 33 32 34 35 29 28 38 39 25 41 2322 44 45 19 18 48 49 15 14 52 53 11 10 56 8 58 59 5 4 62 63 1 >> B=A(2:2:end,:)B =9 55 54 12 13 51 50 16 40 26 27 37 36 30 31 33 41 23 22 44 45 19 18 48 8 58 59 5 4 62 63 1五、选择合适的步距绘制出下⾯的图形。
(1))/1sin(t ,其中)1,1(-∈t ;(2))tan(sin )sin(tan t t -,其中),(ππ-∈t 。
1.>> t=[-1:0.0001:1];y=sin(1./t);plot(t,y) Warning: Divide by zero. >>2.>> t=[-pi:0.001:pi];y=sin(tan(t))-tan(sin(t));plot(t,y) >>七、试求出如下极限。
(1)x xx x 1)93(lim +∞→;(2)11lim00-+→→xy xy y x ;(3)22)()cos(1lim222200yx y x ey x y x +→→++-。
(1)>> syms x;f=(3^x+9^x)^(1/x);limit(f,x,inf)ans =9(2)>> syms x y;f=x*y/(sqrt(x*y+1)-1);limit(limit(f,x,0),y,0) ans =2(3)>> syms x y;f=(1-cos(x^2+y^2))/(x^2+y^2)*exp(x^2+y^2);limit(limit(f,x,0),y,0) ans =0九、假设?-=xytt ey x f 0d ),(2,试求222222yf yx f xf y x ??+-??。
matlab上机题目一答案
上机一1、(1(2) 查询所有人的成绩。
J=struct(…number ‟,{9901,9902,9903,9904,9905},‟name ‟,{…Xiao li ‟, … …Xiao zhou ‟,‟Xiao xu ‟,‟Xiao liao ‟,‟Li na ‟},… ‟score ‟,{90,83,71,82,64},‟grade ‟,{…A ‟,‟B ‟,‟B ‟,‟A ‟,‟A ‟}); A=J(3),B=[J.score], 运行结果:2、已知:A=[27,24,0,-1;23,35,1,14;e 4,-8,13,20;10,12,19,21;11,18,ln2,0], 求:(1)求A 中第4、5、2行与第2、4、1列组成的C 阵,并将C 中第2行元素全改成8,得到D 阵;(2) 创建与A 同维的G 阵,使C 阵左右翻转后位于G 中第2行至第4行、第2列至第4列位置,且G 中第1行第1列元素为1,其余元素为0。
(3) 求A 阵除以3的余数阵H 。
A=[27,24,0,-1;23,35,1,14;exp(4),-8,13,20;10,12,19,21;11,18,log(2),0], C=A([4,5,2],[2,4,1]),D=C;D(2,:)=8, G=zeros(size(A)); G(2:4,2:4)=fliplr(C); G(1,1)=1,H=rem(A,3)3、已知:A=[5,17,-2,3;-1,0,21,11;14,9,-10,8],B=[2,5,8,-1;12,-2,7,8;11,13,16,4] 求:(1)将A 除以B 阵的对应元素,并将结果朝负无穷大方向取整。
(2)求A./B , B.\A ,A.*B 和A*B ‟的值。
(3)求2*ones(3,4)-eye(3,4)|A-B>B&B-8的值.a=A./B,b= floor(A./B),c=A./B , d=B.\A ,e=A.*B, f=A*B ‟, g=2*ones(3,4)-eye(3,4)|A-B>B&B-8,4、要求在闭区间[0,2π ]上产生50个等距采样的一维数组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一熟悉Matlab工作环境1、熟悉Matlab的5个基本窗口思考题:(1)变量如何声明,变量名须遵守什么规则、是否区分大小写。
答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。
变量名要遵守以下几条规则:➢变量名必须以字母开头,只能由字母、数字或下划线组成。
➢变量名区分大小写。
➢变量名不能超过63个字符。
➢关键字不能作为变量名。
➢最好不要用特殊常量作为变量名。
(2)试说明分号、逗号、冒号的用法。
分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。
逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。
冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。
(3)linspace()称为“线性等分”函数,说明它的用法。
LINSPACE Linearly spaced vector. 线性等分函数LINSPACE(X1, X2) generates a row vector of 100 linearlyequally spaced points between X1 and X2.以X1为首元素,X2为末元素平均生成100个元素的行向量。
LINSPACE(X1, X2, N) generates N points between X1 and X2.For N < 2, LINSPACE returns X2.以X1为首元素,X2为末元素平均生成n个元素的行向量。
如果n<2,返回X2。
Class support for inputs X1,X2:float: double, single数据类型:单精度、双精度浮点型。
(4)说明函数ones()、zeros()、eye()的用法。
ones()生成全1矩阵。
zeros()生成全0矩阵。
eye()生成单位矩阵。
2、Matlab的数值显示格式思考题:(1)3次执行exist(’pi’)的结果一样吗?如果不一样,试解释为什么?>> pians =3.1416 >> sin(pi); >> exist('pi') ans =5 >> pi=0;>> exist('pi')ans =1>> pipi =>> clear>> exist('pi')ans =5>> pians =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.0000 1.3247 1.75502.32493.07994.08015.4051 7.1603 9.4856 12.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 =1 1 1 1 1 1 1 1 1 1 1 1B =0 0 0 0 0 00 0 0C =1 0 0 0 1 00 0 1D =8 1 63 5 74 9 2>> E=[C;D], F=E(2:5,:), G=reshape(F,3,4)E =1 0 00 1 00 0 18 1 63 5 74 9 2F =0 1 00 0 18 1 63 5 7G =0 3 1 10 1 5 68 0 0 7>> H=repmat(G,2)H =0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 68 0 0 7 8 0 0 72)矩阵运算练习:1)用矩阵除法求下列方程组的解x=错误!未找到引用源。
>> A=[6 3 4;-2 5 7;8 -1 -3],B=[3;-4;-7]A =6 3 4 -2 578 -1 -3 B =3 -4 -7>> x=A\Bx =1.0200-14.00009.72002)求矩阵的秩;>> r=rank(A)r =33)求矩阵的特征值与特征向量>> [X,Lamda]=eig(A)X =0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719 Lamda =9.7326 0 0 0 -3.2928 0 0 0 1.56024)矩阵的乘幂(平方)与开方>> A^2ans =62 29 3334 12 626 22 34>> A1=sqrtm(A)A1 =2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i 1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 + 2.3845i 5)矩阵的指数与对数(以e为底)>> Ae=expm(A)Ae =1.0e+004 *1.0653 0.5415 0.63230.4830 0.2465 0.28760.6316 0.3206 0.3745>> Ael=logm(A)Ael =1.7129 + 0.4686i 0.5305 - 0.2425i 0.5429 - 0.6049i 1.1938 +2.8123i 0.3658 - 1.4552i -0.5514 -3.6305i -0.0748 - 3.1978i 0.7419 + 1.6546i 1.8333 +4.1282i 6)矩阵的提取(取右上三角)与翻转(逆时针转90度)>> a=triu(A)a =6 3 4 0 57 0 0 -3 >> a1=rot90(A)a1 =4 7 -3 35 -16 -2 83、多维数组的创建及运算练习:创建三维数组A,第一页为错误!未找到引用源。
,第二页为错误!未找到引用源。
,第三页为错误!未找到引用源。
然后用reshape函数重排为数组B,B为3行、2列、2页。
>> a=[1 3;4 2],b=[1 2;2 1],c=[3 5;7 1]>> A=cat(3,a,b,c)A(:,:,1) = 1 3 4 2A(:,:,2) =1 22 1A(:,:,3) = 3 5 7 1 >> B=reshape(A,3,2,2)B(:,:,1) = 1 2 4 1 3 2B(:,:,2) =2 71 53 1三 Matlab数值运算1、多项式运算练习:求错误!未找到引用源。
的商及余多项式。
>> p1=conv([1 0 1],conv([1 3],[1 1]))p1 =1 4 4 4 3>> [q r]=deconv(p1,[1 0 2 1])q =1 4r =0 0 2 -5 -12、多形式插值和拟合有一组实验数据如附表1-1所示。
请分别用拟合(二阶至三阶)和插值(线性和三次样条)的方法来估测X=9.5时Y的值>> x=1:10;y=[16 32 70 142 260 436 682 1010 1432 1960];>> p1=polyfit(x,y,1) p1 =204.8000 -522.4000 >> y1=polyval(p1,9.5) y1 =1.4232e+003>>p2=polyfit(x,y,2),y2=polyval(p2,9.5) p2 =32.0000 -147.2000 181.6000y2 =1.6712e+003>>p3=polyfit(x,y,3),y3=polyval(p3,9.5) p3 =2.0000 -1.0000 5.0000 10.0000y3 = 1.6820e+003>> y4=interp1(x,y,9.5) y4 =1696>> y5=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 =0 0.8976 1.7952 2.6928 3.5904 4.4880 5.3856 6.2832y =0 0.7818 0.9749 0.4339 -0.4339 -0.9749 -0.7818 -0.0000>>xi=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)>> e1=y1-y0;e2=y2-y0; >> plot(xi,e1)1234567-0.1-0.08-0.06-0.04-0.0200.020.040.060.080.1>> plot(xi,e2)01234567-0.015-0.01-0.0050.0050.010.015(3)大气压强p 随高度x 变化的理论公式为错误!未找到引用源。