matlab平时作业Word文档格式.docx
《matlab平时作业Word文档格式.docx》由会员分享,可在线阅读,更多相关《matlab平时作业Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
93.3
输入的成绩不合理
3)用switch语句实现题目要求
请输入一个成绩:
100%mod(x,0.5)表示x除以0.5的余数,用以判断成绩含小数是否为x.5
switchfloor(x/10)%x除以10向下取整
case9
case8
disp('
case7
case6
case{5,4,3,2,1,0}
otherwise
end
120
95.5
A
2.设计程序,完成[10,99]之间两位整数的加、减、乘、除四则运算。
1)随机产生区间[10,99]之内的两位随机整数
2)在产生符合要求的随机数后,输入一个运算符号,做相应的运算
3)运算结果显示在命令窗口,其显示类似于“a=x+y=68”的形式。
x=round((99-10)*rand
(1)+10);
%在区间[1099]随机选一个数x
y=round((99-10)*rand
(1)+10);
%在区间[1099]随机选一个数y
sym=input('
请输入运算符号(+-*/):
'
s'
switchsym%switch语句
case{'
+'
}
a=x+y;
disp(['
输入的两数之和b='
num2str(x),'
num2str(y),'
='
num2str(a)]);
%输出显示类似于“a=x+y=68”的形式
-'
a=x-y;
disp(['
输入的两数之差c='
case{'
*'
a=x*y;
输入的两数之积d='
/'
a=x/y;
输入的两数之商e='
otherwisedisp('
输入符号错误'
+
输入的两数之和b=95+31=126
-
输入的两数之差c=64-53=11
*
输入的两数之积d=89*78=6942
/
输入的两数之商e=51/12=4.25
3.求下列分段函数的值并绘制函数曲线。
要求:
1)x的值以向量的形式从键盘输入。
2)用if语句实现,分别输出x=﹣5.0,﹣3.0,1.0,2.0,2.5,3.0,5.0时的y值。
pleaseinputx='
ifx<
0&
x~=3
y=x.^2+x-6;
elseifx>
=0&
x<
10&
x~=2&
y=x.^2-5.*x+6;
else
y=x.^2-x-1;
disp(['
y='
num2str(y)])
pleaseinputx=[-5.0-3.01.02.02.53.05.0]
y=1411-112.75519
3)自行拟定自变量的取值,绘制该分段函数的二维曲线。
x=-10:
1:
15;
%自拟自变量的取值
y=x.^2+x+6;
plot(x,y,'
r-'
)%绘制分段函数
title('
分段函数'
xlabel('
x'
ylabel('
y'
holdon
图3(3)分段函数的二维曲线
4.分别使用for循环语句和while循环语句找出最小的n值,使得n!
>
10100,并求出n!
。
for循环语句如下:
s=1;
%对s赋初值
forn=1:
100%默认步长为1
s=s*n;
%s=n!
if(s>
10100)
break;
%如果s>
10100,结束运行
n='
num2str(n)])%输出n
disp(['
s='
num2str(s)])%输出s
n=8
s=40320
while循环语句如下:
n=0;
%循环次数赋初值
while(s<
=10100)
n=n+1;
%不能使用++
s=s*n;
end
num2str(n)]);
num2str(s)]);
%组合字符串
5.已知
f1=1,n=1
f2=0,n=2
f3=1,n=3
fn=fn-1-2fn-2+fn-3,n>
3
求f1~f50中:
1)最大值和最小值及它们的位置、各数之和
(最大值给变量MAX,其位置给变量x,
最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。
2)正数、零、负数的个数
(依次赋值给变量N_positive,N_zero,N_negative)。
f
(1)=1;
f
(2)=0;
f(3)=1;
n=3;
%赋值
while(n<
50)
n=n+1;
f(n)=f(n-1)-2*f(n-2)+f(n-3);
[MAX,x]=max(f)%MAX为向量f中最大值元素,x为最大值元素的索引号
[MIN,y]=min(f)%MAX为向量f中最小值元素,y为最小值元素的索引号
SUM=sum(f)
N_positive=numel(find(f>
0))%numel表示返还数组中的元素个数,
N_zero=numel(find(f==0))%返还f中等于0的位置
N_negative=numel(find(f<
0))
MAX=406631
x=49
MIN=-403795
y=50
SUM=76861
N_positive=25
N_zero=2
N_negative=23
6.Fibonacci数组的元素满足Fibonacci规则:
ak+2=ak+ak+1,(k=1,2,3,…);
且a1=a2=1。
请设计一段程序,求出该数组中第一个大于10000的元素对应的k值以及该元素值。
a
(1)=1;
a
(2)=1;
k=1;
whilea(k)<
=10000
a(k+2)=a(k)+a(k+1);
k=k+1;
k='
num2str(k)])
a(k)='
num2str(a(k))])
k=21
a(k)=10946
7.定义自变量x的取值区间为[﹣5,5],编写一个函数文件,实现绘制函数y=ax3+bx2+cx+d的曲线,其中给定各系数值分别为
①a=﹣1,b=2,c=﹣5,d=3;
②a=3,b=﹣7,c=1,d=4;
③a=0,b=4,c=0,d=﹣5
要另外编写调用该函数文件的m文件,实现调用。
functionmy1(a,b,c,d)%定义主函数,函数文件名为my1.m
x=-5:
5;
%输入x
y=a*x.^3+b*x.^2+c*x+d;
plot(x,y);
%绘制曲线
x轴'
%标志x轴
y轴'
%标志y轴
函数图像'
%设置图名称
a=input('
pleaseinputa='
%子函数
b=input('
pleaseinputb='
c=input('
pleaseinputc='
d=input('
pleaseinputd='
%利用输出参数a,b,c,d向my1传递数据
my1(a,b,c,d);
%调用的是啊,a,b,c,d四个参数
图7
(1)图7
(2)
图7(3)
8.设计程序,在一个图形窗体中画出函数y=ex和y=logx的特性曲线。
其中y=ex中x取值区间为(﹣2,2),y=logx中x取值区间为(0.1,5)。
1)要有图例、标题('
二维图'
)、坐标轴标签('
x轴数据'
和'
y轴数据'
);
2)每条曲线的属性自己设置,但不能全用默认值。
x1=-2:
0.1:
2;
y1=exp(x1);
x2=0.1:
y2=log(x2);
plot(x1,y1,'
r*--'
x2,y2,'
ko-'
legend('
函数y=exp(x)的特性曲线'
函数y=logx的特性曲线'
图8
9.采用2行2列子图的方式进行二维图形绘制,要求:
1)自变量x的取值区间为[0,2π]
2)三个函数分别为:
y1=sin(x),y2=cos(x),y3=sin(x)+cos(x)
3)在第1幅子图绘制y1的曲线;
在第2幅子图绘制y2的曲线;
在第3幅子图绘制y3的曲线;
在第4幅子图中绘制所有3条曲线
4)对每一幅子图,都要有图例、坐标轴标签;
曲线的属性自己设置,不能全用默认值。
x=0:
2*pi;
y1=sin(x);
y2=cos(x);
y3=sin(x)+cos(x);
subplot(2,2,1);
plot(x,y1,'
ro-'
sin曲线'
y=sin(x)'
横坐标1'
纵坐标1'
subplot(222);
plot(x,y2,'
g*-'
cos曲线'
y=cos(x)'
横坐标2'
纵坐标2'
subplot(223);
plot(x,y3,'
b-p'
sin(x)+cos(x)曲线'
y=sin(x)+cos(x)'
横坐标3'
纵坐标3'
subplot(224);
x,y2,'
x,y3,'
%同时绘制三个函数的图像
三个函数的曲线'
横坐标'
纵坐标'
图(9)
10.采用1行2列子图的方式进行二维图形绘制,要求:
1)在第1幅子图绘制三维曲线:
x∈[0,20]
y=sin(x)
z=cos(x)
2)在第2幅子图绘制三维曲面:
x∈[﹣20,20]
y∈[﹣10,10]
3)对每一幅子图,都要有标题、坐标轴标签;
subplot(121);
%在第一个子图中绘图
x1=0:
20;
y1=sin(x1);
z1=cos(x1);
x1,z1,'
b*-'
%设置图例
图1'
x1'
y1'
subplot(122);
%在第二个子图中绘图
x2=-20:
y2=0.5*x2;
[X,Y]=meshgrid(x2,y2);
%生成X和Y网络坐标矩阵
z=(X.^2)/9-(Y.^2)/4;
%网格化后直接输入z
mesh(X,Y,z);
%曲面绘图
双曲面'
图2'
x2'
y2'
zlabel('
z'
gridon;
图(10)
11.已知函数
,其中x的取值区间为[﹣2,2],试编程绘制该二维曲线,要求:
要有标题、坐标轴标签,曲线颜色用红色。
p=ezplot('
(x.^2+y.^2-1).^3-x.^2.*y.^3'
[-22]);
%在区间[-22]绘制(x2+y2-1)^3-x2y2=0的图像
set(p,'
color'
r'
%指定曲线颜色为红色
曲线图'
图(11)
12.已知原始数据
,
,插值点为
,试用4种不同的插值方法进行插值,并在一幅图的4个子图中分别绘出4种插值曲线,并各自注明所使用的插值方法。
4*pi;
y=sin(x).*exp(-x/5);
xi=0:
0.3:
%设置新的插点
subplot(221)
yi=interp1(x,y,xi,'
nearset'
%使用最近点插值
plot(xi,yi)
最近点插值'
subplot(222)
yi=interp1(x,y,xi);
%默认为线性插值
线性插值'
subplot(223)
cubic'
%使用三次立方插值
三次立方插值'
subplot(224)
spline'
%使用三次样条插值
三次样条插值'
图(12)
13.考虑表1中的数据:
表1一周气温温度数据
周一
周二
周三
周四
周五
周六
周日
早晨
15
18
13
16
中午
20
21
25
19
22
夜晚
17
12
14
完成以下功能:
1)将一周的气温温度数据,使用一个矩阵A进行保存。
2)取出周二中午、周四上午、周日中午和夜晚的温度值,组成新的温度值向量。
3)取出矩阵A中的前六个数值,组成新的温度值向量。
4)取出周二、周三、周四及周六的数据,组成新的温度值矩阵。
5)求每天温度的平均值
6)求一周的早晨、中午和夜晚温度的平均值
7)求一周的温度平均值及最高温度及最低温度
A=[15151813131516;
20212519202225;
16171214161819]%将一周的气温温度数据使用A矩阵保存
B=A([5102021])%取出周二中午周四上午周日中午和夜晚的温度组成新矩阵
C=A(1:
6)%取出A中的前六个组成新的矩阵
D=A(:
[2346])%取出周二周三周四和周六的数据组成新的矩阵
everyday=mean(A)%表示每一列的平均值,即每天气温的平均值
mae=mean(A'
)%一周早上,中午,晚上的平均值
all=mean(A(:
))%一周的温度平均值
MAX=max(A(:
))%一周的最高温度
MIN=min(A(:
))%一周的最低温度
14.考虑表2中的数据,这是一位举重教练收集的不同性别的举重动员每个年龄的最大举重磅数,据信这三者之间存在着某种函数关系,请估算当前队伍中队员(要求13~20岁每一岁都有)的最大举重磅数。
表2不同性别的举重动员每个年龄的最大举重磅数
性别
年龄
重
举
大
最
男
270
290
330
350
380
女
250
310
360
t=[1315171920]'
;
y=[270290330350380;
250270310330360]'
X=[ones(size(t))tt.^2];
%ones(size(t))以t的长度为矩阵的大小设置全1矩阵
Z=X\y;
%得到系数
T=(13:
20)'
Y=[ones(size(T))TT.^2]*Z;
MAXT=max(Y)
MAXT=[14305/3813545/38]
15.某乡镇企业2009-2015年的生产利润如表3所示。
表3过去7年生产利润
年份
2009
2010
2011
2012
2013
2014
2015
利润(万元)
70
122
144
152
174
196
202
要求用多项式拟合法预测出该企业2016年和2017年的利润,并绘出拟合图。
x=2009:
2015;
%x在[20092015]取值,间隔为1
y=[70122144152174196202];
%得到数据(x,y)
p=polyfit(x,y,1);
%对(x,y)数据进行1阶多项式拟合,得到多项式系数p
x1=2009:
2018;
y1=polyval(p,x1);
%根据得到的多项式,计算x处的函数值y
-ro'
x1,y1,'
-b*'
%样本点用红色线和o表示,拟合曲线用蓝色线和*表示
某乡镇企业2009-2018年的生产利润'
)%设置图的标题
09-15年的利润'
09-18年的利润趋势线'
)%legend表示为图例做标注
年份'
)%x轴表示年份
利润'
)%y轴表示利润
text(2016,polyval(p,2016),'
<
---2016年的利润'
)%在指定2016位置显示字符串
text(2017,polyval(p,2017),'
---2017年的利润'
gridon
图(15)
16.求下列方程组的解。
1)
A=[2-13;
30-5;
4-11];
b=[5;
6;
9];
B=[Ab];
ra=rank(A)
rb=rank(B)%ra=rb=3,方程组有唯一解
x=inv(A)*b%AX=b,X=A-1b
ra=3
rb=3
x=[2;
-1;
0]
2)
A=[40-63;
3-1-34;
15-9-8];
4;
0];
rb=rank(B)%ra=rb=2<
4,所以方程有无穷解
formatrat%用有理数的形式显示数据(分数表示)
R=rref(B)%计算B的最简行矩阵
ra=2
rb=2
R=10-3/23/45/4
01-3/2-7/4-1/4
00000
17.已知用来描述系统的微分方程为
其中,
是幅值为1、频率为1rad/s的方波信号,试建立该系统的SIMULINK模型(如图1所示,须理解为什么是这样的模型)并进行仿真,给出仿真结果。
图1
图(17)scope仿真结果
18-19题为选作题,如果完成(须提交设计的所有原始文件电子稿)可提高平时成绩。
18.利用GUI编程设计一个能够实现两个实数加减乘除四则运算的计算器。
19.利用GUI编程设计一个能够实现两个复数加减乘除四则运算的计算器。