Equazione differenziale difficile da risolvere con Runge-Kutta
Inviato: 23/04/2024, 18:36
Salve! Mi sono imbattuto in un'equazione differenziale particolare, probabilmente molto difficile, che vorrei risolvere numericamente con i metodi di Runge-Kutta. Il problema è il seguente, fissato $beta=80$:
\begin{cases}
x'=dx/d\phi=\dfrac{ cos(\phi) }{ 2+\beta \cdot z-(1/x) \cdot sin(\phi) } \\
z'=dz/d\phi=\dfrac{ sin(\phi) }{ 2+\beta \cdot z-(1/x) \cdot sin(\phi) } \\
x(\phi=0)=0; \\ z(\phi=0)=0
\end{cases}
Con $\phi \in [0,\pi/2]$. Non so nemmeno se il problema è ben posto ad essere onesto. Fatto sta che ho provato molto naif con un il metodo di Eulero Esplicito e matlab mi pone errore del codice.
function [t,Y]=euleroesplicitoV2(f,a,b,y0,N)
h=(b-a)/N;
m=length(y0);
t=zeros(N+1,1);
Y=zeros(N+1,m);
t(1)=a;
Y(1,:)=y0;
for i=1:N
t(i+1)=a+i*h;
Y(i+1,:)=Y(i,:) + h*(f(t(i),Y(i,:))); % f deve essere riga
end
Ho dato in input f = @ (phi,x,z) [ (cos(phi))/(2+beta*z-(sin(phi)/x )) ; (sin(phi))/ (2+beta*z-(sin(phi)/x ))], $a=0$, $b=\pi/2$, $y0=[0;0]$ e $N=100$.
Qualcuno ha idea su come muoversi? Grazie per l'attenzione! :]
\begin{cases}
x'=dx/d\phi=\dfrac{ cos(\phi) }{ 2+\beta \cdot z-(1/x) \cdot sin(\phi) } \\
z'=dz/d\phi=\dfrac{ sin(\phi) }{ 2+\beta \cdot z-(1/x) \cdot sin(\phi) } \\
x(\phi=0)=0; \\ z(\phi=0)=0
\end{cases}
Con $\phi \in [0,\pi/2]$. Non so nemmeno se il problema è ben posto ad essere onesto. Fatto sta che ho provato molto naif con un il metodo di Eulero Esplicito e matlab mi pone errore del codice.
function [t,Y]=euleroesplicitoV2(f,a,b,y0,N)
h=(b-a)/N;
m=length(y0);
t=zeros(N+1,1);
Y=zeros(N+1,m);
t(1)=a;
Y(1,:)=y0;
for i=1:N
t(i+1)=a+i*h;
Y(i+1,:)=Y(i,:) + h*(f(t(i),Y(i,:))); % f deve essere riga
end
Ho dato in input f = @ (phi,x,z) [ (cos(phi))/(2+beta*z-(sin(phi)/x )) ; (sin(phi))/ (2+beta*z-(sin(phi)/x ))], $a=0$, $b=\pi/2$, $y0=[0;0]$ e $N=100$.
Qualcuno ha idea su come muoversi? Grazie per l'attenzione! :]