1 svar
295 visningar
Svalan är nöjd med hjälpen
Svalan 25
Postad: 7 mar 2021 13:24

Eulers metod

Uppgiften handlar om att implementera Eulers metod i MATLAB och lösa ekvationen 

y'-e-xcos(y)=sin(2x) , y(0)=1

Jag har en en mall som jag har börjat fylla i men jag vet inte hur jag ska fortsätta med själva lösningen

 

a=0; b=4; 			% [a,b] intervallet där lösning beräknas

ya=1; 				% begynnelsevärdet, y värdet i vänster ändpunkt

f=@(x,y)exp(-x)*cos(y)+sin(2*x); % funktionen som berskriver differentialekvationen

M=4; 				% antalet indelningspunkter längs x-axeln

x=linspace(a,b,M);		 % indelningspunkterna på x-axeln

y=euler(x,ya,f); 		% anropar lösaren

plot(x,y)		 	% plottar lösningen

 

function y=euler(x,y0,f)

y=zeros(size(x)); 	% y en vektor med nollor, lika lång som x vektorn.
                  	% i denna vektor ska y-värdena läggas in, ett och ett
              	    	% det blir en loop
y(1)=y0; 		% lägg in begynnelsevärdet på första position.

    % Här ska jag alltså skriva nån kod som löser ekvationen
    
    
   


    
end

Efter lite googlande hittar jag en massa olika sätt att utnyttja Eulers formel och tror jag förstår hur Eulers formel fungerar men inte hur jag ska kunna skriva in det i den här mallen , och jag vill inte gärna kopiera en massa kod som jag inte förstår vad den faktiskt gör

emilg 478
Postad: 8 mar 2021 11:10

För att räkna ut nästan punkt (x,y) så räknar du ut derivatan i den punkt där du "är" just nu. Du börjar ju i (0,1), vad är derivatan i den punkten? 

Med hjälp av derivatan tar du dig till nästa punkt (x_2, y_2) och sparar y_2 i din variabel y. Sen tar du dig till nästa punkt o.s.v. (Du får skriva en loop).

Svara Avbryt
Close