Sinusoide passante per due punti
È data la sinusoide $y=a*sin(omega*x+theta)$, dove $omega$ è noto, mentre $a$ e $theta$ sono da trovare in modo che la curva passi per i punti $A (x_A, y_A)$ $B (x_B, y_B)$.
Credo che due punti bastino per determinare i due parametri, altrimenti si può considerare un terzo punto.
Io ci sto scancherando da un po' con le classiche formule trigonometriche, ma finora non ci ho cavato fuori nulla.
È un problema sorto al lavoro, ma l'ho inserito in questa sezione perché credo (spero) che si possa risolvere con la trigonometria da liceo, come sto cercando di fare invano (finora).
Grazie
Credo che due punti bastino per determinare i due parametri, altrimenti si può considerare un terzo punto.
Io ci sto scancherando da un po' con le classiche formule trigonometriche, ma finora non ci ho cavato fuori nulla.
È un problema sorto al lavoro, ma l'ho inserito in questa sezione perché credo (spero) che si possa risolvere con la trigonometria da liceo, come sto cercando di fare invano (finora).
Grazie
Risposte
Se i punti appartengono alla sinusoide basta imporre il passaggio per essi e ricavi i due parametri...
Il conto è un po' complesso dato che non ci sono valori numerici...
Per il principio di appartenenza hai:
$y_A=asin(omegax_A+phi)$
$y_B=asin(omegax_B+phi)$
Ricavo $a$ dalla seconda (o dalla prima)
$a=(y_B)/(sin(omegax_B+phi))$
$y_a=(y_Bsin(omegax_A+phi))/(sin(omegax_B+phi))$
Formule di addizione del seno:
$y_a=(y_Bsinomegax_Acosphi+y_Bcosomegax_Asinphi)/(sinomegax_Bcosphi+cosomegax_Bsinphi)$
Pongo $sinomegax_A=S$, $cosomegax_A=C$, $sinomegax_B=S'$ e $cosomegax_B=C'$ essendo quantita note.
$y_A=(y_BScosphi+y_BCsinphi)/(S'cosphi+C'sinphi)$
da cui: $y_AS'cosphi+y_AC'sinphi-y_BScosphi-y_BCsinphi=0$, con $S'cosphi+C'sinphi!=0$
$cosphi(y_AS'-y_BS)+sinphi(y_AC'-y_BC)=0$, che e' un'equazione omogenea di primo grado, risolubile dividendo tutto per $cosphi$.
Mi sono accorto che ho usato $phi$ al posto di $theta$ ma e' lo stesso...
Per il principio di appartenenza hai:
$y_A=asin(omegax_A+phi)$
$y_B=asin(omegax_B+phi)$
Ricavo $a$ dalla seconda (o dalla prima)
$a=(y_B)/(sin(omegax_B+phi))$
$y_a=(y_Bsin(omegax_A+phi))/(sin(omegax_B+phi))$
Formule di addizione del seno:
$y_a=(y_Bsinomegax_Acosphi+y_Bcosomegax_Asinphi)/(sinomegax_Bcosphi+cosomegax_Bsinphi)$
Pongo $sinomegax_A=S$, $cosomegax_A=C$, $sinomegax_B=S'$ e $cosomegax_B=C'$ essendo quantita note.
$y_A=(y_BScosphi+y_BCsinphi)/(S'cosphi+C'sinphi)$
da cui: $y_AS'cosphi+y_AC'sinphi-y_BScosphi-y_BCsinphi=0$, con $S'cosphi+C'sinphi!=0$
$cosphi(y_AS'-y_BS)+sinphi(y_AC'-y_BC)=0$, che e' un'equazione omogenea di primo grado, risolubile dividendo tutto per $cosphi$.
Mi sono accorto che ho usato $phi$ al posto di $theta$ ma e' lo stesso...
Grazie mille.
Nel frattempo stavo già arrivando ad una soluzione abbastanza simile.
C'è da stare attenti all'$atan$, faremo delle prove numeriche per vedere che precauzioni prendere coi nostri dati.
Grazie ancora
Nel frattempo stavo già arrivando ad una soluzione abbastanza simile.
C'è da stare attenti all'$atan$, faremo delle prove numeriche per vedere che precauzioni prendere coi nostri dati.
Grazie ancora
Una soluzione l'avrei anch'io ( probabilmente non dissimile dalle vostre).
Sommando e sottraendo ed applicando le prostaferesi si ha:
$y_a+y_b=2a*sin(omega *(x_a+x_b)/2+phi)cos(omega*(x_a-x_b)/2)$
$y_a-y_b=2a*cos(omega *(x_a+x_b)/2+phi)sin(omega*(x_a-x_b)/2)$
Dividendo membro a membro risulta:
$(y_a+y_b)/(y_a-y_a)=tan(omega *(x_a+x_b)/2+phi)cotan(omega*(x_a-x_b)/2)$
Da qui ,con un po' di cautela sull'arctan ,si ricava:
$phi =arctan((y_a+y_b)/(y_a-y_b)*tan(omega*(x_a-x_b)/2))-omega*(x_a+x_b)/2$
$a=(y_a)/(sin(omega*x_a+phi))$
Sommando e sottraendo ed applicando le prostaferesi si ha:
$y_a+y_b=2a*sin(omega *(x_a+x_b)/2+phi)cos(omega*(x_a-x_b)/2)$
$y_a-y_b=2a*cos(omega *(x_a+x_b)/2+phi)sin(omega*(x_a-x_b)/2)$
Dividendo membro a membro risulta:
$(y_a+y_b)/(y_a-y_a)=tan(omega *(x_a+x_b)/2+phi)cotan(omega*(x_a-x_b)/2)$
Da qui ,con un po' di cautela sull'arctan ,si ricava:
$phi =arctan((y_a+y_b)/(y_a-y_b)*tan(omega*(x_a-x_b)/2))-omega*(x_a+x_b)/2$
$a=(y_a)/(sin(omega*x_a+phi))$
Avevo provato anch'io con la prostaferesi, ma mi aveva portato alle equazioni iniziali, poi ho trovato il metodo già descritto qui e non me ne sono più interessato.
Vista l'efficienza dimostrata propongo un altro problema analogo, nato ieri; io una sorta di soluzione l'ho già trovata, ma è un gran casino, quindi, forse, qualcuno può aiutarmi a trovare qualcosa di più ragionevole.
L'equazione stavolta ha forma $y=A*sin(x+theta)+B$, dove bisogna determinare $A$, $B$ e $theta$.
Immagino che debbano servire 3 punti invece dei due del precedente.
Molto brevemente:
- ho scritto le tre equazioni, una per ogni punto che considero noto e portando la $B$ alprimo membro;
- ho fatto i rapporti fra le prime due e le ultime due (al momento non mi sono interessato alle condizioni per cui posso farlo);
- nelle due equazioni trovate al punto precedente $A$ si semplifica;
- denominatore comune in entrambe e isolo la $B$ ai primi membri;
- eguaglio i secondi membri, ora funzioni della sola $theta$;
- di nuovo denominatore comune;
- scompongo il seno della somma ovunque;
- nel "polinomio" che salta fuori tutti i monomi contengono $cos^2(theta)$ o $sin(theta)*cos(theta)$ oppure $sin^2(theta)$;
- divido tutto per $cos(theta)$ e mi ritrovo un'equazione di 2° grado in $tg(theta)$, da cui ricavare $theta$;
- sostituisco in un'equazione dove avevo isolato $B$;
- sostituisco tutto in una delle equaizoni originali per trovare $A$.
Come didevo: un gran casino.
Grazie a chi ha tempo e voglia di contribuire.
L'equazione stavolta ha forma $y=A*sin(x+theta)+B$, dove bisogna determinare $A$, $B$ e $theta$.
Immagino che debbano servire 3 punti invece dei due del precedente.
Molto brevemente:
- ho scritto le tre equazioni, una per ogni punto che considero noto e portando la $B$ alprimo membro;
- ho fatto i rapporti fra le prime due e le ultime due (al momento non mi sono interessato alle condizioni per cui posso farlo);
- nelle due equazioni trovate al punto precedente $A$ si semplifica;
- denominatore comune in entrambe e isolo la $B$ ai primi membri;
- eguaglio i secondi membri, ora funzioni della sola $theta$;
- di nuovo denominatore comune;
- scompongo il seno della somma ovunque;
- nel "polinomio" che salta fuori tutti i monomi contengono $cos^2(theta)$ o $sin(theta)*cos(theta)$ oppure $sin^2(theta)$;
- divido tutto per $cos(theta)$ e mi ritrovo un'equazione di 2° grado in $tg(theta)$, da cui ricavare $theta$;
- sostituisco in un'equazione dove avevo isolato $B$;
- sostituisco tutto in una delle equaizoni originali per trovare $A$.
Come didevo: un gran casino.
Grazie a chi ha tempo e voglia di contribuire.
Quello che vi propongo e' probabilmente una rilettura dei metodi precedenti, che pero' io trovo piu' semplice, e che permette di scindere i problemi.
L'idea di fondo e' di passare ai complessi, ricordando che $sin(x)=Im(e^{ix})$ allora
$y=A\sin(x+\theta)+B =Im(Ae^{i(x+\theta)})+B=Im(Ae^{i\theta}e^{ix})+B=Im(ze^{ix})+B$ dove $z=Ae^{i\theta}$
A questo punto invece di cercare $A$ e $\theta$ cerchiamo $z=a+ib$. Se troviamo $a$ e $b$ avremo $A=\sqrt{a^2+b^2}$, mentre $\theta$, che e' l'argomento
di $a+ib$, si trova usando l'arcotangente (con un po' di casi da distingure).
In effetti mi pare che il problema necessiti di tre condizioni, diciamo
$\{(y_1=Im((a+ib)e^{ix_1}+B)),(y_2=Im((a+ib)e^{ix_2}+B)),(y_3=Im((a+ib)e^{ix_3}+B)):}$
con qualche calcolo quello di sopra diventa un sistema lineare in $a,b, B$ - non so se serviva una formula analitica in termini di $x_k$ e $y_k$,$ k=1,2,3$ (che e' un po' complicata da scrivere,
ma come metodo di calcolo mi pare o.k. Puo' darsi che il sistema non sia risolubile sempre e questo lo si dovrebbe vedere calcolando il determinante di cio' che esce.
L'idea di fondo e' di passare ai complessi, ricordando che $sin(x)=Im(e^{ix})$ allora
$y=A\sin(x+\theta)+B =Im(Ae^{i(x+\theta)})+B=Im(Ae^{i\theta}e^{ix})+B=Im(ze^{ix})+B$ dove $z=Ae^{i\theta}$
A questo punto invece di cercare $A$ e $\theta$ cerchiamo $z=a+ib$. Se troviamo $a$ e $b$ avremo $A=\sqrt{a^2+b^2}$, mentre $\theta$, che e' l'argomento
di $a+ib$, si trova usando l'arcotangente (con un po' di casi da distingure).
In effetti mi pare che il problema necessiti di tre condizioni, diciamo
$\{(y_1=Im((a+ib)e^{ix_1}+B)),(y_2=Im((a+ib)e^{ix_2}+B)),(y_3=Im((a+ib)e^{ix_3}+B)):}$
con qualche calcolo quello di sopra diventa un sistema lineare in $a,b, B$ - non so se serviva una formula analitica in termini di $x_k$ e $y_k$,$ k=1,2,3$ (che e' un po' complicata da scrivere,
ma come metodo di calcolo mi pare o.k. Puo' darsi che il sistema non sia risolubile sempre e questo lo si dovrebbe vedere calcolando il determinante di cio' che esce.
Cerco di mettere ordine ...nel casino,ovviamente secondo il mio punto di vista.
Se i tre punti sono $(x_a,y_a),(x_b,y_b),(x_c,y_c)$ allora si ha il sistema:
${(A*sin(x_a+theta)+B=y_a),(A*sin(x_b+theta)+B=y_b),(A*sin(x_c+theta)+B=y_c) :}$
Considerando le prime due equazioni ( o altre due qualsiasi) come un sistema lineare
nelle incognite A e B ,si ha:
${(A=(y_a-y_b)/(sin(x_a+theta)-sin(x_b+theta))),(B=(y_b*sin(x_a+theta)-y_a*sin(x_b+theta))/(sin(x_a+theta)-sin(x_b+theta))):}$
Sostituendo questi valori nella restante equazione ( la terza ,nel nostro caso) abbiamo:
$(y_a-y_b)*sin(x_c+theta)+y_b*sin(x_a+theta)-y_a*sin(x_b+theta)=y_c*sin(x_a+theta)-y_c*sin(x_b+theta)$
Sviluppando e raccogliendo da un lato $sin theta$ e dall'altro $cos theta$,abbiamo l'equazione:
$[y_a(-cosx_b+cosx_c)+y_b(-cosx_c+cosx_a)+y_c(-cosx_a+cosx_b)]sin theta-[y_a(sinx_b-sinx_c)+y_b(sinx_c-sinx_a)+y_c(sinx_a-sinx_b)]cos theta=0$
Da qui :
$tan theta=(y_a(sinx_b-sinx_c)+y_b(sinx_c-sinx_a)+y_c(sinx_a-sinx_b))/(y_a(-cosx_b+cosx_c)+y_b(-cosx_c+cosx_a)+y_c(-cosx_a+cosx_b))$
In definitiva viene fuori la soluzione:
$tan theta=(y_a(sinx_b-sinx_c)+y_b(sinx_c-sinx_a)+y_c(sinx_a-sinx_b))/(y_a(-cosx_b+cosx_c)+y_b(-cosx_c+cosx_a)+y_c(-cosx_a+cosx_b))$
$A=(y_a-y_b)/(sin(x_a+theta)-sin(x_b+theta))$
$B=(y_b*sin(x_a+theta)-y_a*sin(x_b+theta))/(sin(x_a+theta)-sin(x_b+theta))$
In virtù del detto "fidarsi è bene ma...", sarà il caso di controllare !
Se i tre punti sono $(x_a,y_a),(x_b,y_b),(x_c,y_c)$ allora si ha il sistema:
${(A*sin(x_a+theta)+B=y_a),(A*sin(x_b+theta)+B=y_b),(A*sin(x_c+theta)+B=y_c) :}$
Considerando le prime due equazioni ( o altre due qualsiasi) come un sistema lineare
nelle incognite A e B ,si ha:
${(A=(y_a-y_b)/(sin(x_a+theta)-sin(x_b+theta))),(B=(y_b*sin(x_a+theta)-y_a*sin(x_b+theta))/(sin(x_a+theta)-sin(x_b+theta))):}$
Sostituendo questi valori nella restante equazione ( la terza ,nel nostro caso) abbiamo:
$(y_a-y_b)*sin(x_c+theta)+y_b*sin(x_a+theta)-y_a*sin(x_b+theta)=y_c*sin(x_a+theta)-y_c*sin(x_b+theta)$
Sviluppando e raccogliendo da un lato $sin theta$ e dall'altro $cos theta$,abbiamo l'equazione:
$[y_a(-cosx_b+cosx_c)+y_b(-cosx_c+cosx_a)+y_c(-cosx_a+cosx_b)]sin theta-[y_a(sinx_b-sinx_c)+y_b(sinx_c-sinx_a)+y_c(sinx_a-sinx_b)]cos theta=0$
Da qui :
$tan theta=(y_a(sinx_b-sinx_c)+y_b(sinx_c-sinx_a)+y_c(sinx_a-sinx_b))/(y_a(-cosx_b+cosx_c)+y_b(-cosx_c+cosx_a)+y_c(-cosx_a+cosx_b))$
In definitiva viene fuori la soluzione:
$tan theta=(y_a(sinx_b-sinx_c)+y_b(sinx_c-sinx_a)+y_c(sinx_a-sinx_b))/(y_a(-cosx_b+cosx_c)+y_b(-cosx_c+cosx_a)+y_c(-cosx_a+cosx_b))$
$A=(y_a-y_b)/(sin(x_a+theta)-sin(x_b+theta))$
$B=(y_b*sin(x_a+theta)-y_a*sin(x_b+theta))/(sin(x_a+theta)-sin(x_b+theta))$
In virtù del detto "fidarsi è bene ma...", sarà il caso di controllare !
"silvano38":
In virtù del detto "fidarsi è bene ma...", sarà il caso di controllare !
Torna tutto ed è tremendamente semplice, soprattutto rispetto al mio procedimento.
Mi chiedo come abbia fatto a non pensarci...
Ancora grazie mille.