Buscar

Algoritmo runge, 2ªderivada

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ALGORITMO RUNGE-KUTTA
ve=//valor analítico
x0=//condição inicial
y0=//condição inicial
xp=//ponto que se deseja calcular
w=//passo
function yp=runge(x0, y0, xp, w)
 n=(xp-x0)/w //número de repetições
 yp=y0
 xn=x0
 for i=1:n
 fxy=2*xn*yp // f(x,y)
 k1=w*fxy
 xn=xn+w/2
 k2=w*((fxy/yp)*(yp+k1/2))
 k3=w*((fxy/yp)*(yp+k2/2))
 xn=xn+w/2
 k4=w*((fxy/yp)*(yp+k3))
 delt=(1/6)*(k1+2*(k2+k3)+k4)
 yp=yp+delt
 end
endfunction
erro=((ve-yp)*100)/ve
	
	Valor Analítico
	Valor Numérico
	Erro(%)
	dy/dx-4y=0
	1.040811
	1.0408108
	0.0000026
	dy/dx-2xy=0
	1.00040008
	1.0002
	0.0199980 
a)dy/dx-4y=0
-->ve=1.0408108;
-->x0=0;
-->y0=1;
-->xp=0.01;
-->w=0.01;
-->exec('C:\Users\Matheus\Documents\runge.sci', -1)
-->yp=runge(x0,y0,xp,w)
 yp = 1.0408108
-->erro=((ve-yp)*100)/ve
 erro = 0.0000026
b)dy/dx-2xy=0
-->ve=1.00040008;
-->x0=0;
-->y0=1;
-->xp=0.02;
-->w=0.01;
-->exec('C:\Users\Matheus\Documents\runge.sci', -1)
-->yp=runge(x0,y0,xp,w)
 yp = 1.0002
-->erro=((ve-yp)*100)/ve
 erro = 0.0199980
 
ALGORITMO SEGUNDA DERIVADA – MÉTODO DE EULER E MODIFICADO
ve=//valor analítico
x0=//condição inicial
y0=//condição inicial
z0=//condição inicial
xp=//ponto que se deseja calcular
w=//passo
function yp=euler(x0, y0, z0, xp, w)
 n=(xp-x0)/w //número de repetições
 yp=y0
 zp=z0
 for i=1:n
 gxyz=2*zp-yp // g(x,y,z)=dz/dx
 yp=yp+w*zp
 zp=zp+w*gxyz
 end
endfunction
function yp=eulerm(x0, y0, z0, xp, w)
 n=(xp-x0)/w
 yp=y0
 zp=z0
 for i=1:n
 gxyz=2*zp-yp // g(x,y,z)=dz/dx
 yl=yp+w*zp
 zl=zp+w*gxyz
 gxyzl=2*zl-yl // g(x',y',z')
 my=(zp+zl)/2 // média das derivadas de y
 yp=yp+(w*my)
 mz=(gxyz+gxyzl)/2 // média das derivadas de z
 zp=zp+(w*mz)
 end
endfunction
	
	Valor Analítico
	Método de Euler
	Erro (%)
	Método de Euler Modificado
	Erro(%)
	d²y/dx²-2dy/dx+y=0
	0.82436
	0.625
	24.183609
	0.8007812
	2.8602492
a)d²y/dx²-2dy/dx+y=0
-->y0=0;
-->z0=1;
-->xp=0.5;
-->w=0.25;
-->exec('C:\Users\Matheus\Documents\euler.sci', -1)
-->exec('C:\Users\Matheus\Documents\eulerm.sci', -1)
-->yp=euler(x0,y0,z0,xp,w)
 yp = 0.625
-->erro=((ve-yp)*100)/ve
 erro = 24.183609
-->yp=eulerm	(x0,y0,z0,xp,w)
 yp = 0.8007812
-->erro=((ve-yp)*100)/ve
 erro = 2.8602492

Continue navegando