Salve a tutti,
devo risolvere due equazioni differenziali ed ho usato il seguente codice per la risoluzione simbolica:
inits='y(0)=0, Dy(0)=0, x(0)=0, Dx(0)=0';
[y,x]=dsolve('D2y=(q*B)/(m_H*v_H)', 'D2x=(q*E)/(m_H*v_H^2)', inits,'z');
e lui si fa i suoi conti e in qualche modo calcola la soluzione.
Il problema è che B ed E, campo elettrico e magnetico, sono definiti in una certa regione, diciamo per semplicità:
B=1 if 0<=z=<15 cm
E=1 if 8<=z<=16 cm
E=B=0 al di fuori.
In pratica posso considerarli come dei campi a gradino che sono paralleli tra loro e ortogonali a z, che è la variabile di integrazione.
In più vorrei risolvere le equationi per un percorso più lungo, diciamo fino a z=40cm, dove è posto un dispositivo di imaging.
Credo sia meglio utilizzare un metodo di risoluzione numerica, più utile per i miei scopi, e scrivere il codice tipo:
[z,x] = ode23(odefun1,[z0,zf],x0,options)
e un'alta istruzione analoga per l'altra equazione. Ma come passo le funzioni che descrivono i campi e le condizioni iniziali?