12 svar
35 visningar
Ihab 52
Postad: 15 mar 14:47

sum

hej, jag undrar på hur ska jag förmulera denna villkor på matlab 

vilkoret säger att vi ska beräkna och skriva ut alla b for vilka det gäller att 

0.3 <= sum(1/k)-sum(1/k^3)<= 0.4 , där k = 1, ..., b. , men den bara skrivar ut b=0, kan jag få hjälp med att ordna på koden. 

s1=0; s2=0; b=0;
sum= s1-s2;
while 0.3>=sum && sum>= 0.4
    b=b+1; 
    s1=s1+1/k;
    s2=s2+1/k^3
end
disp(b)
Laguna 14271
Postad: 15 mar 15:04

Du testar sum >= 0.4, men det ska vara <=.

Och du ändrar aldrig på sum.

Ihab 52
Postad: 15 mar 15:16

hej, jag tror att jag skrev lite fel ovan: 

alltså vi har två summor , och med sum i koden menar jag differensen mellan dom. 

alltså de vil att vi ska beräkna antalet b som ger att  0.3<=                             k=1                    b1/k -k=1b1/k^3<=0.4

Ihab 52
Postad: 15 mar 15:17

när jag ändrar på sum, kan jag skriva sum=s1-s2, eller inte

Laguna 14271
Postad: 15 mar 15:51

Ja, det är ju det du vill testa. Du kan kalla den sum, eller också t.ex. sumdiff om du vill att namnet ska stämma bättre.

Ihab 52
Postad: 15 mar 16:00

ok men då blir koden lik

s1=0; s2=0; b=0;
sum= s1-s2; 
while 0.3>=sum && sum<=0.4 
b=b+1;
s1 = s1+1/k;
s2=s2+1/k^3;
sum= alltså hur ska jag uppdatera sum, ska jag skriva sum=s1-s2
end
disp(b)
Laguna 14271
Postad: 15 mar 16:18

Jag svarade ja.

Ihab 52
Postad: 15 mar 16:23

hej, igen, nu får jag att k är udefinierat, hur ska jag definiera den, eller kan jag i stället för k skriva b. 

Laguna 14271
Postad: 15 mar 16:31

Du sätter den till 1, och ökar den sen med 1 för varje varv. Det är det summorna betyder.

Ihab 52
Postad: 15 mar 16:36

nu hade jag ordant detta, men fick bara b =1 

men jag tror inte att det är rätt svar

Ihab 52
Postad: 15 mar 16:36

och fick k till två 

Laguna 14271
Postad: 15 mar 16:40

Jag vet inte vad svaret är, men du kan stoppa in lite utskrifter i loopen, så du ser vad s1 och s2 och sum blir för varje varv.

Ihab 52
Postad: 15 mar 16:45

tack så mycket

Svara Avbryt
Close