matlab编程题整理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作业一
1输出x,y两个中值较大的一个值
x=input(‘x’);
y=input(‘y’);
if x>y
x
else
y
end
2输入x,计算y的值。

计算函数的值y=x+1,x<0,y=2x-1,x≧0
x=input(‘x);
if x<0
y=x+1
else
y=2*x-1
end
3输入一学生成绩,评定其等级,方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分为“不合格”
x=input(‘x’)
if x>100 | x<0
y=’输入错误’
elseif x>=90
y=’优秀’
elseif x>=80
y=’良好’
elseif x>=70
y=’中等’
elseif x>=60
y=’及格’
else
y=’不合格’
emd
4某超市节日期间举办购物打折的促销活动,优惠办法是:每位顾客当天一次性购物在100元以上者,按九五折优惠;在200元以上者,按九折优惠;在300元以上者,按八五折优惠;在500元以上者,按八折优惠。

x=input(‘x’);
if x>=500
y=x*0.8
elseif x>=300
y=x*0.85
elseif x>=200
y=x*0.9
elseif x>=100
y=x*0.95
else y=x
end 5编程计算:s=1+2+3+…+100
sum=0;
for i=1:100
sum=sum+i;
end
sum
引申 1!-2!+3!-4!+5!- (99)
sum=0;
for i=1:99
pdr=1;
for k=1:i
pdr=pdr*k;
end
sum=sum+pdr*(-1)^(i-1);
end
sum
引申 1*2*3*4*……*100
sum=1;
for i=1:100
sum=sum*i
end
sum
6计算1~100的奇数和
sum=0;
for i=1:2:100
sum=sum+i;
end
sum
7百元买百鸡问题。

假定小鸡每只5角,公鸡每只2元,母鸡每只3元。

编程列出所有可能的够鸡方案
for x=1:33
for y=1:50
for z=1:200
if x+y+z==100 & 3*x+2*y+0.5*z==100
[x,y,z]
end
end
end
end
8我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿
n=1;m=13;
while m<26
m=m*(1+0.008);
n=n+1;
end
n
9求水仙花数,水仙花数是指一个n位数(n>=3),他的每个位上的数字的n次幂之
和等于它本身。

求出1000以内
for i=100:999
a(1)=fix(i/100);
a(2)=fix((i-a(1)*100)/10);
a(3)=i-a(1)*100-a(2)*10;
if
a(1)^3+a(2)^3+a(3)^3==i
i
end
end
10鸡和兔子关在一个笼子里,已知共有头36个,脚100个,求笼内关了多少只兔子和多少只鸡?
for i=1:50
for j=1:36
if
i+j==36 & i*2+j*4==100
[i,j]
end
end
end
作业二
1.用matlab编程求算式xyz+yzz=532中x,y, z的值(其中xyz和yzz分别表示一个三位数)。

clear
for x=1:9
for y=1:9
for z=1:9
i=100*x+10*y+z+100*y+10*z+z;
if i==532
[x,y,z]
end
end
end
end
2.用matlab编程完成用一元人民币换成一分、两分、五分的所有兑换方案(即输出所有的组合方式)。

clear
for i=0:20
for j=0:50
k=100-i*5-j*2;
if(k>=0)
[I,j,k]
end
end
end
3.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后可以卖完,请用matlab编程计算。

day=0; x1=1020
while (x1)
x2=x1/2-2;
x1=x2;
day=day+1;
end
day
4.有一堆零件(100到200之间),如果分成4个零件一组的,则多2个零件;若分成7个零件一组的,则多3个零件;若分成9个零件一组的,则多5个零件。

用matlab 编程求这堆零件总数。

for x=100:200
if mod(x,4)==2
if mod(x,7)==3
if mod(x,9)==5
x
end
end
end
end
5.编写程序,求1000至9999之间的回文数.回文数是指正读与反读都一样的数,如1221.
for i=1000:1000:9999
for j=0:9
n=i+j*100+j*10=i/1000
end
end
6.作函数y=sinx,x∈[0,2∏]的图象,用蓝色五角星表示点。

x=linspace(0,2*pi);
y=sin(x);
plot(x,y,'bp');
作业三
1: 编写M函数
32
2
2 6.3
0.05 3.14
x x x
f
x x
-+-
=
+-, 计算
)3(
)2(
)1(2f
f
f+
function y=fun1(x)
y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14) ;
fun1(1)*fun1(2)+fun1(3)*fun1(3)
2:编写M函数
1,2
3,28
()
45,820
cos sin,20
x x
x x
f x
x x
x x x
+<

⎪≤≤

=⎨
-<≤

⎪+>
⎩,计算
(0.1)
f,(1)
f,(9)
f,(22)
f,(2)

function y=fff(x) if x<2 y=x+1;
elseif x>=2 & x<=8 y=3*x;
elseif x>8 & x<=20 y=4*x-5; else
y=cos(x)+sin(x); end
3:根据pi*pi/6=1/1^2+1/2^2+1/3^2+……+1/n^2,求pi 的近似值。

当n 分别取100,1000,10000时,结果是多少? y=0;n=100; for i=1:n y=y+1/i/i; end y
pi=sqrt(6*y) y=0;n=1000; for i=1:n y=y+1/i/i; end y
pi=sqrt(6*y) y=0;n=10000; for i=1:n y=y+1/i/i; end y
pi=sqrt(6*y) 4:编程:求[100,200]之间第一个能被21整除的整数。

for n=100:200 if mod(i,21)==0 continue break end end
5:编写函数文件求半径为r 的圆的面积和周长。

function [s,p]=fcircle(r) s=pi*r*r; p=2*pi*r;
6:根据y=1+1-n 21
5131+⋯++,求: (1)y<3时的最大n 值。

(2)与(1)的n 值对应的y 值。

y=1;n=1; while(y<3) n=n+2; y=y+1/n;
end y=y-1/n n=(n+1)/2
7: 已知⎪
⎪⎩⎪⎪⎨
⎧>+
-=======---3
,2
3
,12,01,13
2
1
321
n n n n f
f
f f f f f n n n n

f
f
100
1
~
中:
最大值、最小值、各数之和。

f(1)=1 f(i)=0 f(3)=1
for i=4:100
f(i)=f(i-1)+2*f(i-2)+f(i-3) end min(f) max(f) sum(f) 作业四
1.编程计算3+33+333+3333+…..前10项之和。

m=3;n=0;s=0; for i=1:10 n=n*10+m; s=s+n; end s 2.编程求1-1/2+1/3-1/4+.......+1/99-1/100的值 m=0;
for i=1:1:100
o=(1/i)*(-1)^(i+1); m=m+o; end m
3. 编写程序,求1-3+5-7+…-99+101的值。

s=0; j=1;
for i=1:2:101
s=s+(-1)^(j-1)*i; j=j+1; end s
4. 编写程序,输出从公元1000年至2000年所有闰年的年号。

判断公元年是否为闰年的条件是:
公元年数如能被4整除,而不能被100整除,
则是闰年;
公元年数能被400整除也是闰年。

for year=1000:2000
if(mod(year,4)==0&mod(year,100)~=0)|m od(year,400)==0
year
end
end
5. 将10个整数输入到一个数组中,然后再将其按输入顺序的逆序进行排列并输出。

for i=1:10
a(i)=input('x=');
end
for i=10:-1:1
a(i)
end
6. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。

求它在第10次落地时,共经过多少m?第10次反弹多高?
sn=100;hn=sn/2;
for n=2:10
sn=sn+2*hn;
hn=hn/2;
end
sn
hn
7. 猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上再想吃时,见只剩一个桃子了。

求第一天共摘多少桃子。

day=9;x=1;
while(day>0)
x=(x+1)*2;
day=day-1;
end
x
作业五
上机题
1.给定一个矩阵
a = 1 2 3
4 5 6
编写一个M函数,要求输入是a,输出各元素之和。

function y=f(a)
[r,q]=size(a); y=0;
for i=1:r
for j=1:q
y=y+a(i,j);
end
end
2. A 是一个m×n的矩阵. 写一M函数, 算
出A中有多少个零元素。

function y=f(a)
[m,n]=size(a);
y=0;
for i=1:m
for j=1:n
if a(i,j)==0
y=y+1;
end
end
end
3. 矩阵乘法运算要求两矩阵的维数相容,
否则会出错。

先求两矩阵的乘积,若出错,
则自动转去求两矩阵的点乘。

A=input(‘A’);B= input(‘B’);
try
C=A*B;
catch
C=A.*B;
end
C
4. 一个三位整数各位数字的立方和等于该
数本身则称该数为水仙花数。

输出全部水仙
花数。

for i=100:999
a(1)=fix(i/100);a(2)=fix((i-a(1)*100)
/10);a(3)=i-a(1)*100-a(2)*10;
if a(1)^3+a(2)^3+a(3)^3==i
i
end
end
5.fibonccci数组的元素满足fibonacci规
则:ak+2=ak+ak+1,(k=1,2,…);且a1=a2=1。

现要求求出该数组中第一个大于10000的
元素。

a(1)=1;a(2)=1;i=1;
while a(i)<=10000
a(i+2)=a(i)+a(i+1);
i=i+1;
end
2
2
d d
20,1,
d
1.
d
0,0;
d
d d3
24e,,
d d2
2.
d
30,0.
d
t
t
t
t
t
x y
x x
t dt
x
y y
t
x y
x y x
t t
x
x y y
t
=
=
=
=

+-==
⎪⎪

⎪+==
⎪⎩

-+-==
⎪⎪

⎪++==
⎪⎩
a(i)
6.计算1!+2!+3!+4!+5!+6!+…+n !值的程序。

(n 可以自由输入) Sum=0
N=input(’n ’) For i=1 to n Sum1=1
For j=1 to i Sum1=sum1*i End
Sum=sum+sum1 end 作业六
1.求解一阶微分方程 (1)b ay y +='
y=dsolve('Dy=a*y+b','x')
(2)1)0(',1)0(',','==-=+=g f f g g g f f
[f,g]=dsolve('Df=f+g,Dg=g-f','Df(0)=1,Dg(0)=1','x') (3) 求解微分方程,1)0(,1'=++-=y t y y
y=dsolve('Dy=-y+t+1','y(0)=1')
(4) 求方程xy x y
2d d =的通解.
y=dsolve('Dy=2*x*y')
(5) 求


0d )e e (d )e e (=++-++y x y y x x y x 的通
解.
y=dsolve('Dy=-(exp(x+y)-exp(x))/exp(x +y)+exp(y)','x')
(6)求方程 0)()(=-+'
+y x y y x 的通解
y=dsolve('Dy=-(x-y)/(x+y)')
2.求解二阶常微分方程
(1)1)0(',0)0(,)2sin(''==-=y y y x y y=dsolve('D2y=sin(2*x)-y','y(0)=0,Dy(0)=1','x')
(2)计算微分方程
02=+'+''x e y y 通解。

y=dsolve('D2y=-2*Dy-exp(x)','x')
y=dsolve('D2y=-a*Dy+b*y','x')
(4)
y=dsolve('D2y=2*Dy-y','x')
3.求解微分方程组的解
3.解微分方程组
4.解微分方程组 1.
[x,y]=dsolve('D2y=-Dy+x,Dx=-y','x(0)=1,y(0)=0','t') 2.
[x,y]=dsolve('Dy=-2*Dx+4*x+y+exp(t),D x=-y-3*x','x(0)=3/2,y(0)=0','t') 3.
[x,y]=dsolve('Dy=3*y-2*z,Dz=2*y-z','x ') 4.
[x,y]=dsolve('D2x=-Dy+x+exp(t),D2y=-D x-y','t')
作业七
一.不定积分
1 dx
e x x

3
int('3^x*exp(x)','x') 2 ⎰dx x
x x
22
sin cos
2cos
int('cos(2*x)/(cos(x)^2)*(sin(x)^2)','x')
3 dx
x x
x ⎰
-
)11(2
d 32,(1)d d 2.(2)d y
y z x z y z x
⎧=-⎪⎪⎨
⎪=-⎪⎩2
222
d d
e d d d d 0.d d t
x y
x t t
y x y t
t ⎧+-=⎪⎪⎨
⎪++=⎪⎩
int('(1-1/x^2)*sqrt(x*sqrt(x))','x')
4 ⎰dx
e x
x 2
int('x^2*exp(x)','x') 二.定积分
1 0

=________
int('sqrt(2*x-x^2)','x',0,2)
2. 比较
1
2
x
e d
x

, int('exp(x)','x',2,1) ,2
1
2
x e dx
⎰,
int('exp(x^2)','x',2,1)
12
(1)x dx +⎰. int('(1+x)'
,'x',2,1)
3. 若2
2
()x t x f x e dt
-=⎰ ,求出f(x)
int('exp(-t^2)',t,x,x^2)
4. 计算2
043dx x x +∞++⎰.
int('1/(x^2+4*x+3)','x',0,inf)。

相关文档
最新文档