資源描述:
《matlab經(jīng)典編程例題》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、以下各題均要求編程實(shí)現(xiàn),并將程序貼在題目下方。1.從鍵盤輸入任意個(gè)正整數(shù),以0結(jié)束,輸出那些正整數(shù)中的素?cái)?shù)。clc;clear;zzs(1)=input('請(qǐng)輸入正整數(shù):');k=1;n=0;%素?cái)?shù)個(gè)數(shù)whilezzs(k)~=0flag=0;%是否是素?cái)?shù),是則為1foryz=2:sqrt(zzs(k))%因子從2至此數(shù)平方根ifmod(zzs(k),yz)==0flag=1;break;%非素?cái)?shù)跳出循環(huán)endendifflag==0&zzs(k)>1%忽略0和1的素?cái)?shù)n=n+1;sus(n)=zzs(k);endk=k+1;zzs(k)=input('請(qǐng)輸入正整
2、數(shù):');enddisp(['你共輸入了'num2str(k-1)'個(gè)正整數(shù)。它們是:'])disp(zzs(1:k-1))%不顯示最后一個(gè)數(shù)0ifn==0disp('這些數(shù)中沒有素?cái)?shù)!')%無素?cái)?shù)時(shí)顯示elsedisp('其中的素?cái)?shù)是:')disp(sus)end2.若某數(shù)等于其所有因子(不含這個(gè)數(shù)本身)的和,則稱其為完全數(shù)。編程求10000以內(nèi)所有的完全數(shù)。clc;clear;wq=[];%完全數(shù)賦空數(shù)組forii=2:10000yz=[];%ii的因子賦空數(shù)組forjj=2:ii/2%從2到ii/2考察是否為ii的因子ifmod(ii,jj)==0yz=[y
3、zjj];%因子數(shù)組擴(kuò)展,加上jjendendifii==sum(yz)+1wq=[wqii];%完全數(shù)數(shù)組擴(kuò)展,加上iiendenddisp(['10000以內(nèi)的完全數(shù)為:'num2str(wq)])%輸出3.下列這組數(shù)據(jù)是美國(guó)1900—2000年人口的近似值(單位:百萬)。時(shí)間t19001910192019301940195019601970198019902000人口y7692106123132151179203227250281(1)若試編寫程序計(jì)算出上式中的a、b、c;(2)若試編寫程序計(jì)算出上式中的a、b;(3)在一個(gè)坐標(biāo)系下,畫出數(shù)表中的散點(diǎn)圖(紅色
4、五角星),中擬合曲線圖(藍(lán)色實(shí)心線),以及(黑色點(diǎn)劃線)。(4)圖形標(biāo)注要求:無網(wǎng)格線,橫標(biāo)注“時(shí)間t”,縱標(biāo)注“人口數(shù)(百萬)”,圖形標(biāo)題“美國(guó)1900—2000年的人口數(shù)據(jù)”。(5)程序中要有注釋,將你的程序和作好的圖粘貼到這里。clf;clc;clear%清除圖形窗、屏幕、工作空間t=1900:10:2000;y=[7692106123132151179203227250281];p1=polyfit(t,y,2);%二次多項(xiàng)式擬合y1=polyval(p1,t);%求擬合多項(xiàng)式函數(shù)值…..﹙1﹚%顯示擬合多項(xiàng)式及其系數(shù)a,b,cdisp(char(['y=
5、'poly2str(p1,'t')],['a='num2str(p1(1))'''b='num2str(p1(2))'''c='num2str(p1(3))]));…..﹙2﹚yy=log(y);%指數(shù)擬合必需的線性化變形p2=polyfit(t,yy,1);%擬合b=p2(1);a=exp(p2(2));%求出指數(shù)擬合中的a,by2=a*exp(b*t);%指數(shù)擬合函數(shù)式plot(t,y,'rp',t,y1,t,y2,'k-.');%三類數(shù)據(jù)作圖…..﹙3﹚%圖形窗的進(jìn)一步設(shè)定gridoff;xlabel('時(shí)間t');ylabel('人口數(shù)(百萬)');…..
6、﹙4﹚title('美國(guó)1900—2000年的人口數(shù)據(jù)');4.附加題某正整數(shù)的三次方是四位數(shù),四次方是六位數(shù),四位數(shù)和六位數(shù)的各位數(shù)字正好是0~9這十個(gè)數(shù)字,求此正整數(shù)。clc;clear;forii=10:40%10的三次方是最小四位數(shù),40的四次方超過六位i3=num2str(ii^3);i4=num2str(ii^4);%三四次方均轉(zhuǎn)為字符iflength(i3)==4&length(i4)==6%長(zhǎng)度判斷i_34=sort([i3i4]);%兩數(shù)合并后升序排列ifisequal(i_34,char(48:57))%是否為0至9字符串disp(['這個(gè)數(shù)是
7、'num2str(ii)])disp(['它的三次方是'i3',''四次方是'i4])endendend