Matlab, Biseksjon
Posted: 02/11-2015 20:13
Hei jeg har innlevering i Matlab. Jeg leverte inn og fikk den tilbake med kommentar på den ene oppgaven.
Vi skal her se på løsninger av likningen: [tex]x^3+5x^2-2x+24= \sin x[/tex] som ligger i området [tex]-5 < x < 5[/tex]
Lag et program som finner en løsning av likningen med et avvik mindre enn en viss verdi og som lett kan modifiseres til å bruke et annet avvikskrav ved bruk av
a) Newtons metode
b) Biseksjonsmetoden
c) Hvor mange iterasjoner trenger vi for hver metode dersom avvikskravet er 10-4?
Programmet jeg leverte for oppg b)
function [a,b,iterasjoner] = Oppgave3b (a,b,avvik)
c = (a+b)/2;
h = c^3-(5*c^2)-(2*c)+24-sin(c);
iterasjoner=0;
while abs(h) >= avvik
iterasjoner=iterasjoner+1;
n = a^3-(5*a^2)-(2*a)+24-sin(a);
c = (a+b)/2;
h = c^3-(5*c^2)-(2*c)+24-sin(c);
if (n < 0) && (h > 0)
b = c;
elseif (n > 0) && (h < 0)
b = c;
else
a = c;
end
end
end
kommentaren jeg fikk: Programmet ditt er strukturert slik at programmet ditt halverer intervallet én gang mer enn det skal.
Er forholdsvis fersk i matlab, så jeg håper noen mer erfarne ser hva jeg har gjort feil.
Vi skal her se på løsninger av likningen: [tex]x^3+5x^2-2x+24= \sin x[/tex] som ligger i området [tex]-5 < x < 5[/tex]
Lag et program som finner en løsning av likningen med et avvik mindre enn en viss verdi og som lett kan modifiseres til å bruke et annet avvikskrav ved bruk av
a) Newtons metode
b) Biseksjonsmetoden
c) Hvor mange iterasjoner trenger vi for hver metode dersom avvikskravet er 10-4?
Programmet jeg leverte for oppg b)
function [a,b,iterasjoner] = Oppgave3b (a,b,avvik)
c = (a+b)/2;
h = c^3-(5*c^2)-(2*c)+24-sin(c);
iterasjoner=0;
while abs(h) >= avvik
iterasjoner=iterasjoner+1;
n = a^3-(5*a^2)-(2*a)+24-sin(a);
c = (a+b)/2;
h = c^3-(5*c^2)-(2*c)+24-sin(c);
if (n < 0) && (h > 0)
b = c;
elseif (n > 0) && (h < 0)
b = c;
else
a = c;
end
end
end
kommentaren jeg fikk: Programmet ditt er strukturert slik at programmet ditt halverer intervallet én gang mer enn det skal.
Er forholdsvis fersk i matlab, så jeg håper noen mer erfarne ser hva jeg har gjort feil.