MATLAB實驗四迴圈結構程式設計

2022-05-02 23:45:03 字數 3600 閱讀 6311

matlab實驗報告

學院:光電學院

班級:073-1

姓名:劉穎

學號:200713503117

實驗四迴圈結構程式設計

1.根據,求的近似值。當n分別取100、1000、10000時,記過是多少?

n=100

程式設計:

n=100;

i=1:n;

f=1./i.^2;

x=sum(f);

y=sqrt(6*x)

執行結果:

x =3.1321

n=1000

程式設計:

n=1000;

i=1:n;

f=1./i.^2;

x=sum(f);

y=sqrt(6*x)

執行結果:

x =3.1406

n=10000

程式設計:

n=1000;

i=1:n;

f=1./i.^2;

x=sum(f);

y=sqrt(6*x)

執行結果:

x = 3.1415

2.根據y=1+,求:

(1)y<3時的最大n值。

(2)與(1)的n值對應的y值。

程式設計:

y=1;n=1;

while(y<3)

n=n+2;

y=y+1/n;

endy=y-1/n

n=(n+1)/2

執行結果:

y = 2.9944

n =57

3.考慮以下迭代公式:

其中a、b為正的常數。

(1)編寫程式求迭代的結果,迭代的終止條件為,迭代初值=1.0,迭代次數不超過500次。

程式設計:

x=1.0;

a=2;

b=3;

x=a/(b+x);

n=1;

while(abs(x-(a/x-b))> 10e-5&n<=500)

x=a/(b+x);

n=n+1;

endx

n執行結果:

x = 0.5616

n =6

(2)如果迭代過程收斂於r,那麼r的準確值是,當(a,b)的值取(1,1)、(8,3)、(10,0.1)時,分別對迭代結果的準確值進行比較。

(a,b)取(1,1)

程式設計:

x=1.0;

a=1;

b=1;

x=a/(b+x);

n=1;

while(abs(x-(a/x-b))>10e-5&n<=500)

x=a/(b+x);

n=n+1;

endx

r1=(-b+sqrt(b^2+4*a))/2

r2=(-b-sqrt(b^2+4*a))/2

執行結果:

x = 0.6181

r1 =

0.6180

r2 =

-1.6180

(a,b)取(8,3)

程式設計:

x=1.0;

a=8;

b=3;

x=a/(b+x);

n=1;

while(abs(x-(a/x-b))>10e-5&n<=500)

x=a/(b+x);

n=n+1;

endx

r1=(-b+sqrt(b^2+4*a))/2

r2=(-b-sqrt(b^2+4*a))/2

執行結果:

x = 1.7016

r1 =

1.7016

r2 =

-4.7016

(a,b)取(10,0.1

程式設計:

x=1.0;

a=10;

b=0.1;

x=a/(b+x);

n=1;

while(abs(x-(a/x-b))>10e-5&n<=500)

x=a/(b+x);

n=n+1;

endx

r1=(-b+sqrt(b^2+4*a))/2

r2=(-b-sqrt(b^2+4*a))/2

執行結果:

x = 3.1127

r1 =

3.1127

r2 =

-3.2127

4.已知

求中:(1)最大值、最小值、各數之和。

程式設計:

f(1)=1;

f(2)=0;

f(3)=1;

n=100;

max=f(3);

min=f(2);

sum=2;

for i=4:n

f(i)=f(i-1)-2*f(i-2)+f(i-3);

if f(i)>max

max=f(i);

elseif f(i) min=f(i);

endsum=sum+f(i);

endsum

maxmin

執行結果:

sum =

-7.4275e+011

max =

4.3776e+011

min =

-8.9941e+011(2)正數、零、負數的個數。

程式設計:

f(1)=1;

f(2)=0;

f(3)=1;

n=100;

pn=2;

nn=0;

zn=1;

for i=4:n

f(i)=f(i-1)-2*f(i-2)+f(i-3);

if f(i)>0

pn=pn+1;

elseif f(i)==0

zn=zn+1;

else

nn=nn+1;

endenddisp('正數的個數:'),pn

disp('負數的個數:'),nn

disp('零的個數:'),zn

執行結果:

正數的個數:

pn =

49負數的個數:

nn =

49零的個數:

zn =

25.若兩個連續自然數的乘積減1是素數,則稱這兩個連續自然數是親密數對,該素數是親密素數。例如,23-1=5,由於5是素數,所以2和3是親密數對,5是親密素數。

求[2,50]區間內:

(1)親密數對的對數。

(2)與上述親密數對對應的所有親密素數之和。

程式設計:

sum=0;

n=0;

for i=2:49

m(i)=i*(i+1)-1;

for j=2:sqrt(m(i))

if rem(m(i),j)==0&m(i)~=j

m(i)=0;

endendif m(i)~=0

n=n+1;

endsum=sum+m(i);

end disp('親密數對的對數:'),n

disp('親密素數之和:'),sum

執行結果:

親密數對的對數:

n = 28

親密素數之和:

sum =

21066

MATLAB實驗七迴圈結構程式設計

1.根據,求的近似值。當n分別取100 1000 10000時,記過是多少?n 100 程式設計 n 100 i 1 n f 1.i.2 x sum f y sqrt 6 x 執行結果 x 3.1321 n 1000 程式設計 n 1000 i 1 n f 1.i.2 x sum f y sqrt ...

4實驗四迴圈結構程式設計

一 實驗目的 1 學習迴圈語句for while和do while語句的使用方法。2 學習用迴圈語句實現各種演算法,例如窮舉法 迭代法等。3 進一步熟悉tc整合環境的使用方法。二 實驗內容 1 下列程式計算sum的值。除錯該程式,使之能正確地計算sum。寫出除錯過程。計算公式如下 main int ...

實驗迴圈結構程式設計

一 實驗目的 1 熟練掌握三種迴圈語句的應用。2.掌握break和continue語句的使用。3.熟練掌握迴圈結構的巢狀。4.掌握迴圈結構程式設計常用的演算法 例如一組資料求和 求平均值 求最大值最小值,判斷素數等。二 實驗內容 1 編寫乙個程式,其功能為 計算並輸出1 10的平方值。include...