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


本文标签: 拟合 数据 素数 标注 正整数