Gå til innhold
Trenger du skole- eller leksehjelp? Still spørsmål her ×

Matlab skript


Anbefalte innlegg

Hei, er det noen som har en "lettere"/annen måte å skrive dette skriptet på?

%exp(2*x^2-3*sqrt(x));
n=0; 
a=input('Nedregrenseintervall: ');
b=input('øvregrenseintervall: ');
 
%a=0
%b=0.5
%n=n+1
while b-a> 0.00001
    c=(a+b)/2; 
    n=n+1;
    fa=exp(2*a^2)-3*sqrt(a);
    fc=exp(2*c^2)-3*sqrt(c);
    if or(and(fa>0,fc<0),and(fa<0,fc>0));     
        b=c;
    else
        a=c;
    end
   
end
Lenke til kommentar
Videoannonse
Annonse

Husk og skriv syms x i matlabvinduet først

function [c,i,iFlag,E] = Biject( f,a,b,M,Err)
% f - er en funksjon, husk og skrive syms x først. 
% a - og b er to tall som initialverdier
% M - er maksimalt antall iterasjoner koden kjører. 
% Err - er den feilen en maksimalt ønsker å få 
% Som output er det flere ting en kan få ut 
% c - er nullpunktet ditt, 
% i - er antall kjørte iterasjoner 
% iFlag - er om iterasjonen konvergerte til ønsket presisjon
% E - er hvilken feil en oppnådde
% ================================
% Eksempel: 
%    x0 = Biject(x^3-x+1,-1,1,10,10^(-5))
% ================================

f  = inline(char(f)); iFlag = 1;
if f(a)*f(b) <= 0
    
for i = 1:M
    E = abs(a-b);
    c = (a+b)/2;
 if E < Err
        return
 elseif f(c)*f(b) > 0 
        b = c;
 elseif f(c)*f(b) < 0
        a = c;
 end
end
    iFlag = 0;
else
    iFlag = 0;
    fprintf('\nStartverdiene du valgte ligger på samme side av nullpunktet\n') 
    fprintf('Velg nye startverdier.\n\n')
end
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...