Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
function F=f(y,t) F=[y(2);-9.8*sin(y(1))] endfunction function [y,t]=euler(f,ti,yi,h,N) t=(ti:h:ti+N*h)' y=yi for i=1:N y(:,i+1)=y(:,i)+h*f(y(:,i),t(i)) end endfunction function [y,t]=eulermelhorado(f,ti,yi,h,N) t=(ti:h:ti+N*h)' y=yi for i=1:N ymeio=y(:,i)+h/2*f(y(:,i),t(i)) y(:,i+1)=y(:,i)+h*f(ymeio,t(i)+h/2) end endfunction function [y,t]=predicao(f,ti,yi,h,N) t=(ti:h:ti+N*h)' y=yi for i=1:N k1=f(y(:,i),t(i)) k2=f(y(:,i)+h*k1,t(i)+h) y(:,i+1)=y(:,i)+h*k1/2+h*k2/2 end endfunction function [y,t]=runge4(f,ti,yi,h,N) t=(ti:h:ti+N*h)' y=yi for i=1:N k1=f(y(:,i),t(i)) k2=f(y(:,i)+h*k1/2,t(i)+h/2) k3=f(y(:,i)+h*k2/2,t(i)+h/2) k4=f(y(:,i)+h*k3,t(i)+h) y(:,i+1)=y(:,i)+h/6*(k1+2*k2+2*k3+k4) end endfunction function [y,t]=adams2(f,ti,yi,h,N) [y,t]=runge4(f,ti,yi,h,2) t=(ti:h:ti+N*h)' for i=2:N y(:,i+1)=y(:,i)+h/2*(3* f(y(:,i),t(i)) - f(y(:,i-1),t(i-1)) ) end endfunction function [y,t]=adams3(f,ti,yi,h,N) [y,t]=runge4(f,ti,yi,h,3) t=(ti:h:ti+N*h)' for i=3:N y(:,i+1)=y(:,i)+h/12*(23* f(y(:,i),t(i)) -16* f(y(:,i-1),t(i-1)) +5* f(y(:,i-2),t(i-2))) end endfunction function [y,t]=adams4(f,ti,yi,h,N) [y,t]=runge4(f,ti,yi,h,4) t=(ti:h:ti+N*h)' for i=4:N y(:,i+1)=y(:,i)+h/24*(55* f(y(:,i),t(i)) -59* f(y(:,i-1),t(i-1)) +37* f(y(:,i-2),t(i-2)) -9 *f(y(:,i-3),t(i-3)) ) end endfunction
Compartilhar