Citat:
Ursprungligen postat av evolute
Din rad f=@(x)funktion(x) definierar ju funktionen f(x) varje gång. Vill du inte räkna ut ett värde för ett visst värde på x som ändras inuti din for loop? Exempelvis
s=0;
for x = 1:10
s = s+namn(x);
end
Jo, tack. Vill ha det så. Nu skrevs värdena ut, precis som jag ville.
Fast nu vill jag filtrera jämna och ojämna tal i olika loopar.
Dvs om x=1:1:10
2,4,6,8,10 ska stoppas in i loopen och räknas ut. Sedan ska jag göra samma sak för ojämna tal.
Jag ska nämligen beräkna en integral genom simpson approximering. Fast hela uppgiften är lite mer komplicerad då. Jag ska ha 4 inargument i funktionsfilen. De 4 inargumenten ska vara de samma som de tre första i quad. Det fjärde inargumentet ska vara hur många delintervall jag vill göra.
quad(@funk,a,b)
Denna funktionen ska i sin tur skickas till flera for-loopar som ska räkna ut simpson-approximationen.
Simpsonutveckling:
S=(h/3)(y(0)+4y(1)+2y(2)+4y(3)+...+4y(n-1)+y(n))
En liten oklarhet med uppgiften jag fått är att första inargumentet i quad är just den funktionen f man tänker integrera. Som i denna uppgiften ska vara det första inargumentet. De följande inargumenten blir a, b och h. Där a är startvärde, b slutvärde och h steglängd.
Eftersom det verkade alldeles för konstigt med en funktion som inargument i själva funktionsfilen, så satte jag bara x eftersom f beror av x.
Flera for-loopar borde göras eftersom man har olika konstanter i själva simpson-utvecklingen. Hur man nu väljer ut heltal som ska läggas in i respektive loop borde ske med else if. Då det verkar lättast så.
- Det jag nu inte riktigt förstår är hur jag ska behandla alla dessa inargument.
- Och sen vet jag inte riktigt hur jag ska använda else if.