admin 管理员组文章数量: 1086019
2024年3月29日发(作者:img体育)
mat lab
经典编程例题
以下各题均要求编程实现,并将程序贴在题
U
下方。
1(
从键盘输入任意个正
整数,以
o
结束,输出那些正整数中的素数。
clc;clear;
zzs(l)
二
input ('
请输入正整数:
*) ;k=l; n=0;%
素数个数
while zzs(k)
、=
O
flag=O;%
是否是素数,是则为
1
for yz=2:sqrt(zzs(k))%
因子从
2
至此数平方根
if mod(zzs (k), yz)=0
flag=l ;break;%
非素数跳出循环
end
end
if flag=O&zzs(k)>l%
忽略
0
和
1
的素数
n
二
n+1;sus(n)=zzs(k);
end
k=k+l;
zzs(k)
二
input ('
请输入正整数:');
end
disp(['
你共输入了'
num2str(k-l)
个正整数。它们是:'])
disp(zzs(1 :k-
1))%
不显示最后一个数
0
if n=0
disp
('这些数中没有素数〜')%无素数时显示
else
dispf
其中的素数是:')
disp(sus)
end
2(
若某数等于其所有因子(不含这个数本身)的和,则称其为完全数。编程求
10000
以内所有的完全数。
clc;clear;
wq
二[];%完全数赋空数组
for ii=2:10000
yz=[];%ii
的因子赋空数组
for jj=2:ii/2
%从
2
到
ii/2
考察是否为
ii
的因子
if mod(ii, jj)=O
yz=[yz jj] ;%
因子数组扩展,加上
j j
end
end
if ii==sum(yz)+l
wq=[wq ii];%
完全数数组扩展,加上
ii
end
end
disp([' 10000
以内的完全数为:'
num2str(wq)])%
输出
3(
下列这组数据是美国
1900-2000
年人口的近似值(单位:口万)。时间
t
1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000
人口
y 76 92 106
123 132 151 179 203 227 250 281
2(1)
若试编写程序计算出上式中的
d
、
b
、
c; y
与
t
的经验公式为
y, at, bt,
bt(2)
若试编写程序计算出上式中的
a
、
b; y
与
t
的经验公式为
y, ae.
2(3)
在一个坐标系下,画出数表中的散点图(红色五角星),中
y, ax, bx, c bt
拟合曲线图(蓝色实心线),以及(黑色点划线)。
y, ae.
(4)
图形标注要求:无网格线,横标注“时间
t”
,纵标注“人口数(白万)”,
图形
标题“美国
1900-2000
年的人口数据”。
(5)
程序中要有注释,将你的程序和作好的图粘贴到这里。
clf;clc;clear %
清除图形窗、屏幕、丄作空间
t
二
1900:10:2000;
y
二
[76 92 106 123 132 151 179 203 227 250 281];
pl
二
polyfit (t, y, 2)
;%二次多项式拟合
yl=polyval (pl, t) ;%
求拟合多项式函数值
•••..,1,
%显示拟合多项式及其系
数
a, b, c
disp (char (['y
二'
poly2str (pl,'t') ], ['a
二'
num2str (pl (1)) ' ' ' b
二'
num2str(pl(2))''
'c
二'
num2str (pl (3)
)]));・・・..,
2, yy=log(y) ;%J8
数拟合必需的线性
化变形
p2=polyfit(t, yy, 1);%
拟合
b=p2(l);a=exp(p2(2));%
求出指数拟合中的
a, b
y2=a*exp(b*t)
;%指数拟合函数式
plot (t, y,' rp', t, yl, t, y2,' k-. ') ;%
三类数据作图…,
3,
%图形窗的
进一步 设定
grid off;xlabel(
时间
t');ylabel('
人口数(百万)');
…..,4,
1900—2000
年的人口数据
');
,
美国
300
美国
1900—2000
年的人口数据
250
200
150
人口数(百万)
100
5019902000
时间
t
4(
附加题
某正整数的三次方是四位数,四次方是六位数,四位数和六位数的各位数字正
好是
0
为这十个数字,求此正整数。
clc;clear;
for ii=10:40%10
的三次方是最小四位数,
40
的四次方超过六位
i3=num2str (ii"3) ; i4=num2str (ii 4)
三四次方均转为字符
if length(i3)—4 & length(i4)—6%
长度判断
i_34=sort ([i3 i4])
;%两数合并后升序排列
if isequal(i_34, char (48:57))%
是否为
0
至
9
字符串
disp(['
这个数是'
num2str(ii)])
disp(['
它的三次方是'
i3','
'四次方是'
i4])
end
end
版权声明:本文标题:matlab经典编程例题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1711688486a605715.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论