Formule goniometriche

Lorenzo Roi (luglio 2022)

Deduzione delle principali identità goniometriche

Premessa

Questo notebook presenta le deduzioni delle principali identità goniometriche a partire dalle definizioni delle funzioni sen(α), cos(α) e tan(α) introdotte invece nel notebook IntroduzioneFunzGonio e sostanzialmente indipendente da questo. A partire dall'identità fondamentale della Goniometria si trattano quindi i valori delle funzioni goniometriche di angoli associati per passare poi, con il supporto di un'animazione grafica, alle formule di addizione e sottrazione e relative conseguenze. Si ottengono infine le formule di Werner e prostaferesi.

Nota didattica

Poiché Mathematica procede in automatico ad elaborare argomenti numerici o simbolici di funzioni nonché valori delle stesse fornendo di norma i risultati del calcolo senza presentare i passaggi intermedi, tale caratteristica ovviamente utile in numerose occasioni diventa al contrario un condizionamento tutte le volte che si intende sviluppare un graduale processo deduttivo nel quale l'uso di manipolazioni algebriche di un'espressione conduca alla dimostrazione di un asserto. Se ad esempio si considera il semplice input seguente

Sin[(π/2)- α]==Cos[α]

Mathematica semplifica automaticamente il primo membro riducendolo a Cos[α] per cui, essendo uguale al secondo, fornisce in output l'esito del confronto con True. In ambiti opportuni può invece essere conveniente mantenere l'input, o parti di esso, inalterato nell'output. In sostanza, Mathematica sembra inadatto in quelle situazioni, peraltro attività comune per l'insegnante, dove all'importanza o all'utilità dei risultati si affianca pure l'obiettivo di una loro documentata deduzione.

Nota tecnica

Questo notebook rappresenta sostanzialmente una sperimentazione personale attorno ad alcune funzioni raramente usate in Mathematica allo scopo di poter, in qualche modo, aggirare l'ostacolo accennato nella nota precedente. Pur esistendo in Internet alcuni interventi su queste problematiche (non molti per la verità) sotto forma di notebook o package e certamente più ampi e approfonditi di questo tentativo, ho preferito non utilizzarli per provare soluzioni più limitate e controllabili anche se meno generali. Il processo di calcolo di Mathematica è pertanto stato aggirato creando gradualmente una base di regole per le "nuove" funzioni sen[], cos[] e tan[] evitando di utilizzare le funzioni predefinite Sin[], Cos[] e Tan[]. Quando opportuno, si è "congelato" momentaneamente l'automatismo di calcolo di Mathematica con la funzione HoldForm per poi riattivarlo con una funzione (rilascia) creata ad hoc. In ogni caso si è cercato di sviluppare un insieme di funzioni minimale allo scopo.
I comandi che vanno eseguiti prima di procedere alle varie deduzioni sono quelli contenuti nella sezione Funzioni di base e quelli inseriti all'inizio di ogni sezione e compresi in Identità dimostrate. Altre brevi informazioni sulle funzioni implementate si trovano sotto forma di commenti nella sezione che segue.

Funzioni di base

Le seguenti funzioni vanno elaborate per poterne disporre in seguito nel notebook.

(*--opzioni di stile per le figure--*)
SetOptions[Graphics, BaseStyle->{FontSize->9},ImageSize->{250,250}];
SetOptions[Manipulate, SaveDefinitions->True,ControlPlacement->Top];
(*--FUNZIONI--*)
(*--elimina la presenza di HoldForm a qualsiasi livello e permette a Mathematica il calcolo automatico dell'espressione--*)
	rilascia[expr_]:=MapAll[ReleaseHold,expr];

(*--scambia il primo con il secondo membro di una identità/uguaglianza--*)
	scambia[id_Equal]:=id/.a_==b_:>b==a

(*--la modifica sulla funzione Equal è di Roman Meader: Algebraic Enhancements--*)
(*--permette una notazione sintetica nel sommare o moltiplicare entrambi i membri di un'uguaglianza per uno stesso termine--*)
	Unprotect[Equal]; 
	listableQ[f_] := MemberQ[Attributes[f], Listable];
	Equal/: lhs:(f_Symbol)?listableQ[___, _Equal, ___] := Thread[Unevaluated[lhs], Equal];
	Protect[Equal];

(*--Trasforma l'uguaglianza tra due membri in una regola (delayed) di sostituzione. Viene utilizzata per aggiornare gradualmente la base di conoscenza sulle funzioni sen, cos e tan--*)
        toRule[identita_Equal,var_List:{α,β,γ}]:=RuleDelayed@@(Equal[identita[[1]]/.(Rule[#,Pattern[#,Blank[]]]&)/@var,identita[[2]]]);

(*--Esegue la trasformazione opposta alla precedente: da regola di sostituzione ad uguaglianza--*)
        toIdentita[rule_RuleDelayed]:=Block[{expr,pos},expr=Equal@@rule; pos=Position[expr,Pattern];ReplacePart[expr,Apply[Symbol,#]&,pos]];

(*--applica al numeratore e al denominatore del secondo membro di una identità la funzione
  funz: utilizzato per moltiplicare e dividere num e denom per uno stesso termine. Il secondo membro dev'essere pertanto un rapporto tra num e den --*)
        applicaND[eq_,funz_]:=Module[{num,den,tmp,dentmp},tmp=Replace[eq[[2]],Power[_,-1]->dentmp,{1}]; num=tmp/dentmp;den=num/eq[[2]]; eq[[1]]==funz[num]/funz[den]]

(*  REGOLE DI SOSTITUZIONE INIZIALI *)
(*--"Base di conoscenza" iniziale sulle funzioni sen, cos, tan, cot. 
 Le sostituzioni defs rappresentano le definizioni geometriche: le successive legano le principali funzioni dello stesso angolo: utilizzate per semplificazioni e riscrittura di formule--*)
        defs={QP/OP->sen[α],OQ/OP->cos[α],QP/OQ->tan[α]};
        id1=tan[α_]:>sen[α]/cos[α];
        id2=cot[α_]:>cos[α]/sen[α];
        id3=1/tan[α_]:>cot[α];
        id4={sen[α_]/cos[α_]:>tan[α],Times[Power[cos[α_],-2],
         Power[sen[α_],2]]:>Power[tan[α],2]};

(* la stessa del notebook IntroFunzGonio.nb *)
(*** traccia il triangolo rettangolo giallo e i vettori sui cateti ***)
costruzione[α_,funGonio_String]:=Module[{pP,pQ,pO},
pP={Cos[α],Sin[α]};pQ={Cos[α],0};pO={0,0};Graphics[{{Yellow,Polygon[{pO,pQ,pP}]},{If[α>0,Red,Blue],Disk[pO,.2,If[α≥0,{0,α},{α,0}]]},{Gray,Circle[],Line[{pP,pO}]},
{{Thick,Switch[funGonio,"seno",Blue,"coseno",Gray,"tangente",Blue],Arrow[{pQ,pP}]},{Thick,Switch[funGonio,"seno",Gray,"coseno",Blue,"tangente",Blue],Arrow[{pO,pQ}]}}}]];

(* la stessa del notebook IntroFunzGonio.nb *)
vertici[α_,stile___]:=Module[{pP,pQ,pO},pP={Cos[α],Sin[α]};pQ={Cos[α],0};pO={0,0};Graphics[{Text[Style["O",stile],pO,{1,1}],Text[Style["Q",stile],pQ,{0,1}],Text[Style["P",stile],pP,{0,-1}]}]];

Identità fondamentale

Manipulate[
Show[costruzione[α,"seno"],vertici[α,Red,Bold,FontSize->12],Axes->True,PlotRange->1.2,ImageSize->400],{{α,25Degree, Style["α ",Bold,FontSize->12]},0,2π}]

Dimostrazione dell'identità fondamentale

Riportiamo le definizioni di carattere geometrico delle principali funzioni goniometriche discusse in un precedente notebook e, assieme, forniamo le  relazioni che le legano tra di loro al medesimo angolo α. I segmenti OQ e QP vanno considerati come segmenti orientati (o componenti del vettore OP). OP è invece la misura (positiva) del raggio della circonferenza associata al sistema cartesiano di figura (o anche il modulo di OP). È questo l'insieme di "regole" da cui iniziamo.

Join[{QP/OP==sen[α],OQ/OP==cos[α],QP/OQ==tan[α]},toIdentita/@{id1,id2,id3}]//TableForm

L'applicazione del teorema di Pitagora al triangolo OQPpermette di scrivere

(OP^2)==(OQ^2)+(QP^2)

per cui sostituendo le espressioni di OQ e QP dedotte dalle definizioni di seno e coseno si ha

%/.{OQ->OP sen[α],QP->OP cos[α]}

Eliminando ora il termine (OP^2)comune ai due membri si ottiene

%/(OP^2)//Simplify

relazione che costituisce l'identità fondamentale della Goniometria.

Funzioni goniometriche in termini di una di esse

Identità dimostrate

(* la funzione, qui usata per la prima volta, aggiunge all'insieme di regole iniziali quella dimostrata nella precedente sezione. Ad ogni regola si associa in tal modo un nome mnemonico per poterla usare successivamente. Per due tabelle comprensive di tutti i nomi si veda la sezione riassuntiva finale *)
idFondamentale=toRule[((cos[α])^2)+((sen[α])^2)==1];

Nota la funzione sen[α]

Per determinare il coseno e la tangente in termini del seno dello stesso angolo facciamo uso dell'identità appena dimostrata esplicitando dapprima il coseno ossia sottraendo ((sen[α])^2) ad entrambi i membri

toIdentita[idFondamentale]-sen[α]^2

L'estrazione della radice quadrata fornisce

Sqrt/@%

ma dato che (Sqrt[((cos[α])^2)])=|cos[α]| risulta

MapAt[Abs,%,{1}]

To rules

cosNotosen=toRule[%];

Tangente in termini del seno

La funzione tangente invece si ottiene partendo dalla

toIdentita[id1]

e considerandola in valore assoluto

Abs[tan[α]]==((Abs[sen[α]])/(Abs[cos[α]]))//TraditionalForm

Sostituendo il risultato precedente giungiamo alla relazione cercata

%/.cosNotosen

To rules

tanNotosen=toRule[%];

Nota la funzione cos[α]

In modo del tutto analogo si procede se si intende esprimere il seno e tangente in termini del coseno: riportiamo senza commento la procedura.

toIdentita[idFondamentale]-cos[α]^2

Sqrt/@%

MapAt[Abs,%,{1}]

To rules

senNotocos=toRule[%];

Tangente in termini del coseno

toIdentita[id1]

Abs[tan[α]]==((Abs[sen[α]])/(Abs[cos[α]]))

%/.senNotocos

Nota la funzione tan[α]

Ritenendo conosciuto il valore di tan[α] iniziamo dalla evidente identità

HoldForm[((sen[α])^2)]==((sen[α])^2)

e riscriviamo il denominatore ( =1) del secondo membro sfruttando l'identità fondamentale

MapAt[#/(sen[α]^2+cos[α]^2)&,%,2]

Dividiamo ora il numeratore e denominatore del secondo membro per ((cos[α])^2)≠0 supponendo quindi che α≠(π/2)+k π

applicaND[%,HoldForm[#/cos[α]^2]&]

Applicando la proprietà distributiva e sapendo che tan[α]=sen[α]/cos[α] otteniamo

applicaND[%,Apart[rilascia[#]]&]//.id4

da cui l'estrazione della radice quadrata in entrambi i membri fornisce

rilascia[Sqrt/@%]

per cui risulta

MapAt[Abs,%,1]

Con la stessa successione di passaggi si ottiene il valore assoluto del coseno in termini della tangente: sinteticamente

HoldForm[((cos[α])^2)]==((cos[α])^2)

MapAt[#/(sen[α]^2+cos[α]^2)&,%,2]

applicaND[%,HoldForm[#/cos[α]^2]&]

applicaND[%,Apart[rilascia[#]]&]//.id4

rilascia[Sqrt/@%]

MapAt[Abs,%,1]

In definitiva abbiamo ottenuto le seguenti identità in termini dell'angolo α

Nel seguito riprenderemo, di queste, solo l'identità fondamentale in quanto solo questa si dimostrerà necessaria.

Angoli associati e relative identità

Identità dimostrate

{idFondamentale,cosNotosen,tanNotosen,senNotocos,tanNotocos,senNototan,cosNototan}={((cos[α])^2)+((sen[α])^2):>1,Abs[cos[α]]:>(Sqrt[1-((sen[α])^2)]),Abs[tan[α]]:>((Abs[sen[α]])/(Sqrt[1-((sen[α])^2)])),Abs[sen[α]]:>(Sqrt[1-((cos[α])^2)]),Abs[tan[α]]:>((Sqrt[1-((cos[α])^2)])/(Abs[cos[α]])),Abs[sen[α]]:>(Sqrt[(((tan[α])^2)/(1+((tan[α])^2)))]),Abs[cos[α]]:>(Sqrt[(1/(1+((tan[α])^2)))])};
Grid[Transpose[{Style[#,FontFamily->"Helvetica",FontSize->10]&/@{"idFondamentale","cosNotosen","tanNotosen","senNotocos","tanNotocos","senNototan","cosNototan"},toIdentita/@{idFondamentale,cosNotosen,tanNotosen,senNotocos,tanNotocos,senNototan,cosNototan}}],Frame->All,Spacings->{2,1},Alignment->{{Left,Center}},Background->{Automatic,{{Automatic,LightGreen}}}]//TraditionalForm;

Angoli complementari

Manipulate[Block[{β},β=π/2-α;
pP={Cos[α],Sin[α]};pQ={Cos[α],0};pO={0,0};pR={Cos[β],Sin[β]};pS={Cos[β],0};
Show[Graphics[{{Yellow,Polygon[{pO,pQ,pP}],Polygon[{pO,pS,pR}]},{Green,Disk[pO,.3,{0,β}]},{Red,Disk[pO,.2,{0,α}]},{Dashed,Gray,Circle[]},Line[{pP,pO,pR}],
{Blue,Thick,Arrow[{pO,pQ}],Arrow[{pQ,pP}]},
{Blue,Thick,Arrow[{pO,pS}],Arrow[{pS,pR}]},
{Text["O",pO,{1,1}],Text["Q",pQ,{0,1}],Text["P",pP,{0,-1}],Text["S",pS,{0,1}],Text["R",pR,{0,-1}]}}],Axes->True,Ticks->{{-1,0,1},{-1,0,1}},PlotRange->1.1,ImageSize->400]],{{α,25Degree,Style["α ",Bold,FontSize->12]},0,2π}]

Seno di un angolo complementare

Sia α l'ampiezza di un angolo orientato. Questo individua nella circonferenza γ con centro nell'origine O di un sistema cartesiano il triangolo OQP. In fig. 2 α, per comodità, appare un angolo compreso nel I quadrante (in rosso) ma le relazioni che dedurremo si dimostrano valide qualsiasi sia il suo valore. L'angolo complementare, di ampiezza (π/2)-α che si associa ad α definisce a sua volta il triangolo OSR: siamo interessati ad esprimere le funzioni goniometriche di quest'ultimo in termini di quelle dell'angolo α. Dalla definizione discende quindi che

sen[π/2-α]==SR/OR

ma la congruenza tra i triangoli △OQP≅△OSR comporta che si abbia, anche in segno, SR=OQ e OR=OP. Pertanto sostituendo queste uguaglianze nella precedente

%/.{SR->OQ,OR->OP}

Ma per la definizione delle funzioni goniometriche relative all'angolo α, in particolare quella del coseno, risulta che

%/.defs

Coseno di un angolo complementare

Procediamo nello stesso modo per determinare cos[(π/2)-α] in termini di funzioni dell'angolo α.

cos[π/2-α]==OS/OR

Osservata la validità di OS=QP (fig.2) discende

%/.{OS->QP,OR->OP}

e utilizzando la definizione di sen[α]

%/.defs

Identità dimostrate

{senCompl,cosCompl}=toRule/@{sen[(π/2)-α]==cos[α],cos[(π/2)-α]==sen[α]}

Tangente di un angolo complementare

Infine, la definizione di tangente per l'angolo complementare comporta l'uguaglianza

tan[π/2-α]==SR/OS

ma la congruenza dei triangoli già esposta assicura che SR=OQ e OS=QP (fig. 2) per cui

%/.{SR->OQ,OS->QP}

che è equivalente alla

% QP/OQ

Per la definizione di tangente risulta anche

%/.defs

da cui, dividendo per tan[α]

%/tan[α]

che si può riscrivere nei due modi seguenti

%/.id3

%/.id2

In alternativa

tan[π/2-α]==sen[π/2-α]/cos[π/2-α]

per cui sfruttando le identità già dimostrate per seno e coseno, riesce

%/.senCompl/.cosCompl

Abbiamo pertanto dimostrato le identità:

Identità dimostrate

{senCompl,cosCompl,tanCompl}=toRule/@{sen[(π/2)-α]==cos[α],cos[(π/2)-α]==sen[α],tan[(π/2)-α]==((cos[α])/(sen[α]))};

Angoli che differiscono per un angolo retto

Manipulate[Block[{β},β=π/2+α;
pP={Cos[α],Sin[α]};pQ={Cos[α],0};pO={0,0};pR={Cos[β],Sin[β]};pS={Cos[β],0};
Show[Graphics[{{Yellow,Polygon[{pO,pQ,pP}],Polygon[{pO,pS,pR}]},{Green,Disk[pO,.3,{0,β}]},{Red,Disk[pO,.2,{0,α}]},{Dashed,Gray,Circle[]},Line[{pP,pO,pR}],
{Blue,Thick,Arrow[{pO,pQ}],Arrow[{pQ,pP}]},
{Blue,Thick,Arrow[{pO,pS}],Arrow[{pS,pR}]},
{Text["O",pO,{1,1}],Text["Q",pQ,{0,1}],Text["P",pP,{0,-1}],Text["S",pS,{0,1}],Text["R",pR,{0,-1}]}}],Axes->True,Ticks->{{-1,0,1},{-1,0,1}},PlotRange->1.1,ImageSize->400]],{{α,25Degree,Style["α ",Bold,FontSize->12]},0,3/2π}]

Seno di un angolo che differisce di (π/2)

Angoli che differiscono per un angolo retto danno origine alla configurazione geometrica di fig. 3. Ancora è soddisfatta la congruenza di tipo geometrico △OQP≅△OSR mentre, osservando i versi delle componenti, risulta SR=OQ e OS=-QP. Ne segue

sen[π/2+α]==SR/OR

che si riscrive

%/.{SR->OQ,OR->OP}

e, in base alla definizione, risulta

%/.defs

Coseno di un angolo che differisce di (π/2)

Dalla definizione

cos[π/2+α]==OS/OR

ma per quanto osservato sopra nel caso del seno diviene

%/.{OS->-QP,OR->OP}

per cui

%/.defs

Tangente di un angolo che differisce di (π/2)

Con le medesime osservazioni e iniziando dalla definizione

tan[π/2+α]==SR/OS

risulta che l'espressione precedente si modifica in

%/.{SR->OQ,OS->-QP}

da cui, moltiplicando per il reciproco del secondo membro

% (QP/OQ)

si ottiene un'espressione dove appare la definizione di tan[α]

%/.defs

Dividendo per tale funzione si ha

%/tan[α]

che si può riscrivere anche come

%/.id3/.id2

Riassumiamo in riquadro quanto ottenuto

Identità dimostrate

{senDiffPi2,cosDiffPi2,tanDiffPi2}=toRule/@{sen[(π/2)+α]==cos[α],cos[(π/2)+α]==-sen[α],tan[(π/2)+α]==-((cos[α])/(sen[α]))};

Angoli supplementari

Manipulate[Block[{β},β=π-α;
pP={Cos[α],Sin[α]};pQ={Cos[α],0};pO={0,0};pR={Cos[β],Sin[β]};pS={Cos[β],0};
Show[Graphics[{{Yellow,Polygon[{pO,pQ,pP}],Polygon[{pO,pS,pR}]},{Green,Disk[pO,.3,{0,β}]},{Red,Disk[pO,.2,{0,α}]},{Dashed,Gray,Circle[]},Line[{pP,pO,pR}],
{Blue,Thick,Arrow[{pO,pQ}],Arrow[{pQ,pP}]},
{Blue,Thick,Arrow[{pO,pS}],Arrow[{pS,pR}]},
{Text["O",pO,{1,1}],Text["Q",pQ,{0,1}],Text["P",pP,{0,-1}],Text["S",pS,{0,1}],Text["R",pR,{0,-1}]}}],Axes->True,Ticks->{{-1,0,1},{-1,0,1}},PlotRange->1.1,ImageSize->400]],{{α,30 Degree,Style["α ",Bold,FontSize->12]},0,2π}]

Seno di un angolo supplementare

Ancora una volta l'espressione delle funzioni goniometriche di un angolo associato ad α, in tal caso l'angolo supplementare, si basa sull'osservazione della congruenza dei triangoli individuati dai lati terminali dei due angoli, nel caso in esame, △OSR e △OQP (fig. 4). Valgono pertanto le relazioni tra componenti OS=-OQ e SR=QP e di conseguenza discende

sen[π-α]==SR/OR

%/.{SR->QP,OR->OP}

%/.defs

Coseno di un angolo supplementare

Nello stesso modo

cos[π-α]==OS/OR

%/.{OS->-OQ,OR->OP}

%/.defs

Tangente di un angolo supplementare

Infine, la definizione di tangente implica

tan[π-α]==SR/OS

e le osservazioni fatte inizialmente permettono di riscriverla come

%/.{SR->QP,OS->-OQ}

da cui

%/.defs

Abbiamo dimostrato quindi le ulteriori tre relazioni

Identità dimostrate

{senSuppl,cosSuppl,tanSuppl}=toRule/@{sen[π-α]==sen[α],cos[π-α]==-cos[α],tan[π-α]==-tan[α]};

Angoli che differiscono di π

Manipulate[Block[{β},β=π+α;
pP={Cos[α],Sin[α]};pQ={Cos[α],0};pO={0,0};pR={Cos[β],Sin[β]};pS={Cos[β],0};
Show[Graphics[{{Yellow,Polygon[{pO,pQ,pP}],Polygon[{pO,pS,pR}]},{Green,Disk[pO,.3,{0,β}]},{Red,Disk[pO,.2,{0,α}]},{Dashed,Gray,Circle[]},Line[{pP,pO,pR}],
{Blue,Thick,Arrow[{pO,pQ}],Arrow[{pQ,pP}]},
{Blue,Thick,Arrow[{pO,pS}],Arrow[{pS,pR}]},
{Text["O",pO,{1,1}],Text["Q",pQ,{0,1}],Text["P",pP,{0,-1}],Text["S",pS,{0,-1}],Text["R",pR,{0,1}]}}],AspectRatio->Automatic,Axes->True,Ticks->{{-1,0,1},{-1,0,1}},PlotRange->1.1,ImageSize->400]],{{α,30 Degree,Style["α ",Bold,FontSize->12]},0,2π}]

Seno di un angolo che differisce di π

Con riferimento alla fig. 5 osserviamo al solito modo che OS=OQ così come SR=QP. Poiché per definizione risulta

sen[π+α]==SR/OR

le precedenti danno luogo alla

%/.{SR->-QP,OR->OP}

e quindi, riprese le definizioni per l'angolo α, segue

%/.defs

Coseno di un angolo che differisce di π

La definizione di coseno implica per l'angolo explementare α+π (fig. 5)

cos[π+α]==OS/OR

ma le relazioni tra componenti già discusse permettono di scrivere

%/.{OS->-OQ,OR->OP}

da cui

%/.defs

Tangente di un angolo che differisce di π

Infine sfruttando ancora la definizione di tangente

tan[π+α]==SR/OS

e le relazioni tra componenti

%/.{SR->-QP,OS->-OQ}

risulta

%/.defs

Questa identità conferma e dimostra la periodicità della funzione tangente: il suo periodo è pari a π.

In definitiva abbiamo che le funzioni goniometriche di angoli che differiscono per π sono collegate a quelle dell'angolo originario dalle seguenti identità

Identità dimostrate

{senExpl,cosExpl,tanExpl}=toRule/@{sen[π+α]==-sen[α],cos[π+α]==-cos[α],tan[π+α]==tan[α]}

Angoli opposti

Manipulate[Block[{β},β=-α;
pP={Cos[α],Sin[α]};pQ={Cos[α],0};pO={0,0};pR={Cos[β],Sin[β]};pS={Cos[β],0};
Show[Graphics[{{Yellow,Polygon[{pO,pQ,pP}],Polygon[{pO,pS,pR}]},{Green,Disk[pO,.3,{β,0}]},{Red,Disk[pO,.2,{0,α}]},{Dashed,Gray,Circle[]},Line[{pP,pO,pR}],
{Blue,Thick,Arrow[{pO,pQ}],Arrow[{pQ,pP}]},
{Blue,Thick,Arrow[{pO,pS}],Arrow[{pS,pR}]},
{Text["O",pO,{1,1}],Text["Q≡S",pQ+{-.03,0.03},{1,-1}],Text["P",pP,{0,-1}],Text["R",pR,{0,1}]}}],AspectRatio->Automatic,Axes->True,Ticks->{{-1,0,1},{-1,0,1}},PlotRange->1.1,ImageSize->400]],{{α,30 Degree,Style["α ",Bold,FontSize->12]},0,2π}]

Seno di un angolo opposto

Dalla congruenza più volte notata △OSR≅△OQP discende ora SR=-QP e OS=OQ (fig. 6). Ne deriva che

sen[-α]==SR/OR

%/.{SR->-QP,OR->OP}

%/.defs

Questo risultato, valido per ∀ α∈ ℝ stabilisce che la funzione seno è una funzione dispari: il suo grafico risulta pertanto simmetrico rispetto all'origine di un sistema cartesiano che abbia in ascissa la variabile angolare α e in ordinata il valore sen[α].

Coseno di un angolo opposto

Analogamente a quanto finora visto e in base alla configurazione di fig. 6

cos[-α]==OS/OR

%/.{OS->OQ,OR->OP}

%/.defs

Anche questa identità, valida per ∀ α∈ ℝ codifica una proprietà importante della funzione coseno: questa è una funzione pari con grafico simmetrico rispetto all'asse delle ordinate del sistema cartesiano associato all'equazione y=cos[α].

Tangente di un angolo opposto

Per la definizione di tangente e in base a quanto osservato precedentemente

tan[-α]==SR/OS

%/.{SR->-QP,OS->OQ}

%/.defs

Come già visto per la funzione seno, poiché l'identità precedente vale per ∀ α∈ Dom(tan)= ℝ-{(π/2)+k π} stabilisce che pure la funzione tangente è una funzione dispari con grafico quindi simmetrico rispetto all'origine di un sistema cartesiano con in ascissa la variabile angolare e in ordinata il valore di tan[α].

Abbiamo ottenuto quindi

Identità dimostrate

{senOpp,cosOpp,tanOpp}=toRule/@{sen[-α]==-sen[α],cos[-α]==cos[α],tan[-α]==-tan[α]}

Introduzione grafica e prima identità

Analisi grafica

Affrontiamo in questa sezione la dimostrazione dell'identità che lega il coseno di una differenza di angoli alle funzioni goniometriche degli angoli stessi. In base a questa relazione sarà possibile dedurre una (lunga) serie di identità che specificano di volta in volta nuove proprietà delle funzioni goniometriche.
Definiamo nella circonferenza goniometrica γ i due angoli α=170 °e β=115 °, il primo indicato in giallo nella figura sottostante e tale da ricoprire un intero settore circolare di γ e il secondo in verde. I lati non coincidenti con il semiasse positivo delle x di questi angoli intersecano la circonferenza nei due punti, P(cos(α),sen(α)) e Q(cos(β),sen(β)).

pP={Cos[α],Sin[α]};
pQ={Cos[β],Sin[β]};

Manipulate[Block[{α,β},α=αFix -rotazione;β=βFix-rotazione; pP={Cos[α],Sin[α]};pQ={Cos[β],Sin[β]};Show[Graphics[{{Yellow,EdgeForm[Thin],Disk[{0,0},1,{0,αFix}]},If[mostraDiff==True,{Red,CapForm["Butt"],Thickness[.07],Circle[{0,0},.32,{β,α}]}],Line[{{0,0},{Cos[βFix],Sin[βFix]}}],{Green,Disk[{0,0},.2,{0,βFix}]},Line[{pQ,{0,0}}],{Dashed,Gray,Circle[{0,0},1]},Line[{pP,{0,0}}],{Red,AbsolutePointSize[4],Point[pP],Point[pQ]},{Red,AbsolutePointSize[4],Point[{Cos[αFix],Sin[αFix]}],Point[{Cos[βFix],Sin[βFix]}]},
{Text[Style["P(cos(α),sen(α))",FontSize->12],pP+{.15,0.04},{0,-1}],Text[Style["Q(cos(β),sen(β))",FontSize->12],pQ,{1,-1}]}}],Axes->True,PlotRange->1.2,Ticks->{{-1,0,1},{-1,0,1}},ImageSize->400]],{{αFix,170 Degree,Style["α ",Bold,FontSize->12]},0,2π},{{βFix,115 Degree,Style["β ",Bold,FontSize->12]},0,αFix},{{rotazione,0,Style["rotazione ",Bold,FontSize->12]},0,βFix},{{mostraDiff,True,"nascondi α-β"},{False,True}}]

Dal punto di vista geometrico, la differenza α-β appare come l'angolo evidenziato in color rosso. Poiché le convenzioni sugli angoli in goniometria impongono di trattare questi con un lato coincidente con il semiasse positivo delle ascisse, eseguiamo una rotazione attorno all'origine pari all'angolo β in modo da riportare quest'angolo nell'ambito convenzionale corretto.

Ulteriori osservazioni

Appare evidente come in tale rotazione il punto Q, alla fine, vada a coincidere con il punto A(1,0) di fig. 8 mentre il punto P a sua volta ha per immagine finale il punto D(cos(α-β),sen(α-β)).

pA={1,0};
pD={Cos[α-β],Sin[α-β]};

In particolare, essendo le rotazioni delle isometrie, la lunghezza della corda PQ rimane invariata cosicché possiamo porre in relazione la lunghezza del segmento originario PQ con quella della sua immagine DA: queste lunghezze sono uguali per cui vale PQ=DA oppure, elevando al quadrato

(PQ^2)=(DA^2).

Block[{α=170Degree,β=115Degree},pA={1,0};pD={Cos[α-β],Sin[α-β]};Show[Graphics[{{LightGreen,Disk[{0,0},1,{0,α-β}]},{Dashed,Gray,Arrow[{pP,pD}],Arrow[{pQ,pA}]},{Magenta,Disk[{0,0},.2,{0,55Degree}]},Line[{pP,{0,0},pQ}],Line[{{0,0},pD}],{Red,Thick,Line[{pP,pQ}],Line[{pD,pA}]},{Gray,Circle[]},{Red,AbsolutePointSize[4],Point[pP],Point[pQ]},
Text["P",pP+{-.02,0},{0,-1}],Text["Q",pQ,{1,-1}],Text["A",pA,{-1,-1}],Text[Style["D(cos(α-β), sen(α-β))",FontSize->12],pD,{-1,-1}],Text["α-β",{.35,.12}]}],Axes->True,PlotRange->{{-1.1,1.7},{-1.1,1.1}},Ticks->{{-1,0,1},{-1,0,1}},ImageSize->400]]

Formula di sottrazione per il coseno

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α]};

Dimostrazione

Poiché i punti P, Q, A e D sono descritti dalle coppie ordinate

pP={cos[α],sen[α]};
pQ={cos[β],sen[β]};
pA={1,0};
pD={cos[α-β],sen[α-β]};

ne segue che i quadrati dei segmenti PQquadrato e DAquadrato in termini degli angoli α e β risultano

{{"PQquadrato =",PQquadrato=Plus@@(((pP-pQ))^2)},{"DAquadrato =",DAquadrato=Plus@@(((pD-pA))^2)}}//TableForm

Posti, per quanto visto, uguali ne discende l'equazione

PQquadrato==DAquadrato

Possiamo ora eseguire i quadrati coinvolti nei due membri

Expand/@%

e quindi utilizzando l'identità goniometrica fondamentale (sen^2)α+(cos^2)α=1, ridurre l'equazione alla forma equivalente più semplice

%//.idFondamentale

Sottraendo 2 ad entrambi i membri

%-2

e, dopo aver diviso per -2, scambiamo i due membri e semplifichiamo

scambia[%/-2]//Simplify

In definitiva siamo giunti a dimostrare la validità dell'espressione

Il coseno di una differenza è pertanto, ben diverso dall'aspettativa ingenua che lo "vorrebbe" pari alla differenza dei coseni! In termini più formali questa identità (e le analoghe seguenti) dimostrano che le funzioni goniometriche non sono delle funzioni lineari dei propri argomenti.

Formule di addizione e sottrazione

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β]};

Formula di addizione per il coseno

La precedente identità collega il coseno della differenza di due angoli α e β con le funzioni goniometriche di questi e costituisce la formula di sottrazione per il coseno. Questo risultato si può facilmente estendere e in questa sezione otterremo, per prima, la corrispondente formula di addizione e successivamente le formule di addizione e sottrazione per seno e tangente. A tal fine sostituiamo nell'identità appena dimostrata

toIdentita[cosDiff]

all'angolo β l'angolo -β

%/.β->-β

Tenendo presente quanto già dimostrato ossia che il seno è una funzione dispari valendo sen(-β)=-sen(β) mentre il coseno è pari dato che cos(-β)=cos(β), ∀ β ∈ ℝ, l'espressione precedente diviene

%/.senOpp/.cosOpp

Il coseno della somma in termini delle funzioni di α e β risulta quindi

Formule di addizione e sottrazione per il seno

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β]};

Seno della differenza

Sfruttiamo l'identità sen(α)=cos((π/2)-α)per dedurre la formula di sottrazione per la funzione seno.

sen[α-β]==cos[(π/2)-(α-β)]

e, in base alla proprietà associativa, riscriviamo il secondo membro sostituendo a (π/2)-α=γ

%/.(π/2)-α->γ

Possiamo ora applicare la formula di addizione per il coseno appena ottenuta

%/.cosAdd

e ritornando ad esprimere γ in termini di α

%/.γ->(π/2)-α

Per l'identità già ricordata e per quella analoga riguardante il seno di angoli complementari sen((π/2)-α)=cos(α), la precedente fornisce

%/.senCompl/.cosCompl

che è quanto si voleva ottenere.

To rules

senDiff=toRule[%]

Identità dimostrate

senDiffEq=sen[α-β]==cos[β] sen[α]-cos[α] sen[β];
{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β],sen[α_-β_]:>cos[β] sen[α]-cos[α] sen[β]};

Seno della somma

Nello stesso modo seguito per il coseno, sostituiamo a β l'angolo -β

toIdentita[senDiff]/.β->-β

Per le proprietà di simmetria del seno sen(-β)=-sen(β) e del coseno, cos(-β)=cos(β)   ∀β ∈ ℝ, otteniamo

%/.senOpp/.cosOpp

Riassumiamo in un'unica espressione le due identità dimostrate

intendendo che i segni vanno considerati nell'ordine indicato ossia il segno superiore a primo membro va associato al segno superiore a secondo e così per quello inferiore.

Formule di addizione e sottrazione per la tangente

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff,senAdd}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β],sen[α_-β_]:>cos[β] sen[α]-cos[α] sen[β],sen[α_+β_]:>cos[β] sen[α]+cos[α] sen[β]};

Tangente della somma

Sfruttiamo le identità appena trovate per dimostrare quelle coinvolgenti la tangente di una somma o di una differenza. Poiché la tangente di un angolo si può esprimere come il rapporto tra il seno e il coseno, abbiamo

tan[α+β]==((sen[α+β])/(cos[α+β]))

Sviluppiamo il numeratore e denominatore della precedente utilizzando le formule di addizione per il seno e coseno

%/.senAdd/.cosAdd

Supponendo cos(α)cos(β)≠0 cioè α,β≠(π/2)+kπ, dividiamo numeratore e denominatore del secondo membro per tale termine

applicaND[%,HoldForm[#/(cos[α]cos[β])]&]

e quindi semplificando e tenendo conto della definizione di tangente in termini del seno e coseno, gli elementi coinvolti a secondo membro divengono rispettivamente

applicaND[%,Apart[rilascia[#]]&]

%//.id4

che è la formula cercata.

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff,senAdd,tanAdd}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β],sen[α_-β_]:>cos[β] sen[α]-cos[α] sen[β],sen[α_+β_]:>cos[β] sen[α]+cos[α] sen[β],tan[α_+β_]:>((tan[α]+tan[β])/(1-tan[α] tan[β]))};

Tangente della differenza

Per ottenere la formula corrispondente e relativa alla differenza degli angoli, procediamo alla sostituzione β→-β

toIdentita[tanAdd]/.β->-β

Ricordando che la tangente è una funzione dispari che soddisfa quindi alla identità tan(-β)=-tan(β) giungiamo infine alla

%/.tanOpp

In definitiva le formule di addizione e sottrazione per la tangente sono

Formule di duplicazione

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff,senAdd,tanAdd,tanDiff}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β],sen[α_-β_]:>cos[β] sen[α]-cos[α] sen[β],sen[α_+β_]:>cos[β] sen[α]+cos[α] sen[β],tan[α_+β_]:>((tan[α]+tan[β])/(1-tan[α] tan[β])),tan[α_-β_]:>((tan[α]-tan[β])/(1+tan[α] tan[β]))};

Formule di duplicazione per seno coseno e tangente

Dall'insieme delle formule discusse finora possiamo derivare facilmente un altro gruppo di importanti identità goniometriche. Iniziamo da quelle di duplicazione, formule che collegano le funzioni goniometriche dell'angolo 2α con quelle dell'angolo α.
Partendo dalla

toIdentita[senAdd]

basta porre β=α per ottenere quanto si voleva

%/.β->α

Analogamente per il coseno si ottiene immediatamente

toIdentita[cosAdd]

cosDuplEq=%/.β->α

Tenendo conto dell'identità goniometrica fondamentale quest'ultima si può riscrivere anche in termini alternativi appena si sostituisca (cos^2)(α)=1-(sen^2)(α)

toIdentita[cosDupl]/.cos[a_]^2->1-sen[a]^2

cosDuplSen=toRule[%]

oppure ancora, in base alla (sen^2)(α)=1-(cos^2)(α), si ottiene una terza forma

toIdentita[cosDupl]/.sen[a_]^2->1-cos[a]^2

Infine la formula di addizione per la tangente

toIdentita[tanAdd]

fornisce con la sostituzione β->α l'espressione cercata

%/.β->α

Le formule di duplicazione sono pertanto

To rules

cosDuplCos=toRule[cos[2 α]==-1+2 ((cos[α])^2)];

Formule di bisezione

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff,senAdd,tanAdd,tanDiff,senDupl,cosDupl,cosDuplSen,cosDuplCos,tanDupl}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β],sen[α_-β_]:>cos[β] sen[α]-cos[α] sen[β],sen[α_+β_]:>cos[β] sen[α]+cos[α] sen[β],tan[α_+β_]:>((tan[α]+tan[β])/(1-tan[α] tan[β])),tan[α_-β_]:>((tan[α]-tan[β])/(1+tan[α] tan[β])),sen[2 α_]:>2 cos[α] sen[α],cos[2 α_]:>((cos[α])^2)-((sen[α])^2),cos[2 α_]:>1-2 ((sen[α])^2),cos[2 α_]:>-1+2 ((cos[α])^2),tan[2 α_]:>((2 tan[α])/(1-((tan[α])^2)))};

Formule di bisezione per seno, coseno, tangente

In modo inverso rispetto alle formule di duplicazione, quelle di bisezione esprimono le funzioni goniometriche di un angolo in termini dell'angolo doppio. Iniziamo sfruttando una delle tre forme della formula di duplicazione per il cos(2α)

toIdentita[cosDuplSen]

ed esplicitiamo il sen(α)in funzione del cos(2α)

%-1

scambia[-%/2]

L'estrazione della radice quadrata comporta

Sqrt/@%

e quindi ricordando che il primo membro rappresenta un valore assoluto, l'espressione diventa

MapAt[Abs,%,1]

Sostituendo ad α l'angolo (α/2) otteniamo quanto richiesto

%/.α->α/2

Si tenga presente che per utilizzare proficuamente formule di questo tipo, contenenti il valore assoluto di una funzione goniometrica, sarà necessario conoscere il quadrante dell'angolo (α/2) così da riconoscere il segno della funzione ad argomento e "aprire" il valore assoluto.

Abbiamo in sostanza dimostrato

Identità dimostrate

senBis=toRule[Abs[sen[(α/2)]]==((Sqrt[1-cos[α]])/(Sqrt[2]))];

Formula di bisezione per il coseno

Partendo invece dalla forma

toIdentita[cosDuplCos]

esplicitiamo il cos(α)

scambia[(%+1)1/2]

e quindi l'estrazione della radice quadrata conduce alla

Sqrt/@%

ossia

MapAt[Abs,%,1]

Eseguiamo infine la sostituzione α->(α/2) per ottenere la scrittura canonica per tale identità

%/.α->α/2

To rules

cosBis=toRule[Abs[cos[(α/2)]]==((Sqrt[1+cos[α]])/(Sqrt[2]))]

Bisezione per la tangente

Volendo giungere anche alla formula di bisezione per la tangente è sufficiente eseguire il rapporto, membro a membro, delle due identità appena trovate: ovviamente quanto si deduce vale nell'ipotesi che il denominatore sia diverso dallo zero (α≠π+2k π). Difatti

toIdentita[senBis]/toIdentita[cosBis]

Possiamo quindi porre

Abs[Tan[α/2]]==%[[2]]

Le tre identità ottenute sono in conclusione

To rules

tanBis=toRule[Abs[Tan[(α/2)]]==((Sqrt[1-cos[α]])/(Sqrt[1+cos[α]]))]

Formule parametriche razionali

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff,senAdd,tanAdd,tanDiff,senDupl,cosDupl,cosDuplSen,cosDuplCos,tanDupl,senBis,cosBis,tanBis}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β],sen[α_-β_]:>cos[β] sen[α]-cos[α] sen[β],sen[α_+β_]:>cos[β] sen[α]+cos[α] sen[β],tan[α_+β_]:>((tan[α]+tan[β])/(1-tan[α] tan[β])),tan[α_-β_]:>((tan[α]-tan[β])/(1+tan[α] tan[β])),sen[2 α_]:>2 cos[α] sen[α],cos[2 α_]:>((cos[α])^2)-((sen[α])^2),cos[2 α_]:>1-2 ((sen[α])^2),cos[2 α_]:>-1+2 ((cos[α])^2),tan[2 α_]:>((2 tan[α])/(1-((tan[α])^2))),Abs[sen[((α_)/2)]]:>((Sqrt[1-cos[α]])/(Sqrt[2])),Abs[cos[((α_)/2)]]:>((Sqrt[1+cos[α]])/(Sqrt[2])),Abs[Tan[((α_)/2)]]:>((Sqrt[1-cos[α]])/(Sqrt[1+cos[α]]))};

Formule parametriche razionali di seno, coseno e tangente

Le formule che dimostreremo in questa sezione si mostrano utili in diverse occasioni, in particolare quando non si dispone di sufficienti informazioni sul quadrante di appartenenza dell'angolo α. Difatti nelle seguenti relazioni non compaiono termini entro valori assoluti per i quali è necessario disporre di tale informazione.  
Partiamo dalla formula di duplicazione del seno

toIdentita[senDupl]

e scriviamo il denominatore del secondo membro (che vale evidentemente 1) come (sen^2)(α)+(cos^2)(α)=1.

MapAt[#  1/(sen[α]^2+cos[α]^2)&,%,{2}]

Dividiamo ora il numeratore e il denominatore per (cos^2)(α)≠0 supponendo quindi che α≠(π/2)+k π

applicaND[%,HoldForm[#/cos[α]^2]&]

Ricordando che tan(α)=((sen(α))/(cos(α))) il secondo membro si riscrive

applicaND[%,Apart[rilascia[#]]&]//.id4

Infine per riportare l'identità appena trovata alla forma canonica eseguiamo la sostituzione α->(α/2)

%/.α->α/2

Procedendo allo stesso modo possiamo giungere all'identità collegata al coseno: difatti, riscritta

toIdentita[cosDupl]

come

MapAt[#  1/(sen[α]^2+cos[α]^2)&,%,{2}]

dividiamo ancora il numeratore e il denominatore per (cos^2)(α)≠0 supponendo quindi che α≠(π/2)+k π

applicaND[%,HoldForm[(#) (1/cos[α]^2)]&]

Per la proprietà distributiva e la definizione della tangente, questa diviene

applicaND[%,Apart[rilascia[#]]&]//.id4

L'applicazione della sostituzione α->(α/2) implica

%/.α->α/2

La terza ed ultima formula di bisezione si ottiene immediatamente con la sostituzione α->(α/2)a partire da quella di duplicazione per la tangente

toIdentita[tanDupl]

Difatti si ha

%/.α->α/2

In conclusione, le formule di bisezione ottenute sono

To rules

senRaz=toRule[%]

cosRaz=toRule[%]

tanRaz=toRule[%]

Formule di Werner e prostaferesi

Identità dimostrate

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff,senAdd,tanAdd,tanDiff,senDupl,cosDupl,cosDuplSen,cosDuplCos,tanDupl,senBis,cosBis,tanBis,senRaz,cosRaz,tanRaz}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β],sen[α_-β_]:>cos[β] sen[α]-cos[α] sen[β],sen[α_+β_]:>cos[β] sen[α]+cos[α] sen[β],tan[α_+β_]:>((tan[α]+tan[β])/(1-tan[α] tan[β])),tan[α_-β_]:>((tan[α]-tan[β])/(1+tan[α] tan[β])),sen[2 α_]:>2 cos[α] sen[α],cos[2 α_]:>((cos[α])^2)-((sen[α])^2),cos[2 α_]:>1-2 ((sen[α])^2),cos[2 α_]:>-1+2 ((cos[α])^2),tan[2 α_]:>((2 tan[α])/(1-((tan[α])^2))),Abs[sen[((α_)/2)]]:>((Sqrt[1-cos[α]])/(Sqrt[2])),Abs[cos[((α_)/2)]]:>((Sqrt[1+cos[α]])/(Sqrt[2])),Abs[Tan[((α_)/2)]]:>((Sqrt[1-cos[α]])/(Sqrt[1+cos[α]])),sen[α_]:>((2 tan[(α/2)])/(1+((tan[(α/2)])^2))),cos[α_]:>((1-((tan[(α/2)])^2))/(1+((tan[(α/2)])^2))),tan[α_]:>((2 tan[(α/2)])/(1-((tan[(α/2)])^2)))};

Formule di Werner

Riportate di seguito le formule di addizione e sottrazione per il seno e coseno, deduciamo da queste delle ulteriori identità con le quali potremo collegare prodotti di funzioni goniometriche con somme.

Transpose[{{"(1) senAdd","(2) senDiff","(3) cosAdd","(4) cosDiff"},toIdentita/@{senAdd,senDiff,cosAdd,cosDiff}}]//TableForm

Sommando quindi in colonna le prime due, otteniamo

Plus@@toIdentita/@{senAdd,senDiff}

che evidentemente associa il prodotto del seno e coseno con una somma. Dividendo per 2 e scrivendo il secondo membro come primo abbiamo

% /2//scambia

espressione che costituisce la prima formula di Werner. Se, al contrario, eseguiamo la differenza delle prime due identità e procediamo allo stesso modo otteniamo

Subtract@@toIdentita/@{senAdd,senDiff}//scambia

%/2

che sostanzialmente mostra il medesimo risultato a parte lo scambio dell'angolo α con β. Eseguendo invece la somma della terza e quarta identità

Plus@@toIdentita/@{cosAdd,cosDiff}

giungiamo, dopo aver scambiato i membri e diviso per 2

%/2//scambia

alla seconda formula di Werner: questa collega il prodotto di due coseni con una somma. Infine sottraendo la quarta dalla terza

Subtract@@toIdentita/@{cosAdd,cosDiff}

e semplificata dividendola per -2 e quindi scambiati i membri, ricaviamo la terza formula di Werner che riporta un prodotto di seni in una somma.

%/-2//scambia

To rules

wernerCosSen=toRule[cos[β] sen[α]==(1/2) (sen[α-β]+sen[α+β])]

wernerCosCos=toRule[cos[α] cos[β]==(1/2) (cos[α-β]+cos[α+β])]

Formule di prostaferesi

Infine, le quattro formule di prostaferesi si deducono dalle espressioni intermedie servite per giungere alle relazioni di Werner. A tal fine si sostituiscono, in luogo degli angoli α e β, le nuove variabili

{({{p=α+β}, {q=α-β}})

Esplicitati α e β in termini di p e q

sol=Flatten[Solve[{α+β==p,α-β==q},{α,β}]]//Simplify

e, dopo aver sommato la formula di addizione per il seno con quella della sottrazione,

Plus@@toIdentita/@{senAdd,senDiff}

è sufficiente sostituire le nuove variabili

%/.sol

e semplificare

%//Simplify

È questa la prima formula di prostaferesi che, come appare evidente, riduce una somma di seni ad un prodotto. Le altre si ottengono in maniera analoga: per ottenere la seconda identità di prostaferesi, riferendoci sempre alle identità di inizio sezione va sottratta la seconda dalla prima

Subtract@@toIdentita/@{senAdd,senDiff}

per cui, scambiati i membri

%//scambia

e sostituite le nuove variabili angolari si ottiene

%/.sol//Simplify

%-sen[q]

proSenDiffSen=toRule[%,{p,q}]

Per la terza di prostaferesi, si parte invece dalla somma della terza identità iniziale con la quarta

Plus@@toIdentita/@{cosAdd,cosDiff}

e con il medesimo processo si trova

%/.sol//Simplify

Per ultimo, sottraendo la quarta dalla terza

Subtract@@toIdentita/@{cosAdd,cosDiff}

e, inserite le varibili p e q

%/.sol//Simplify

%-cos[p]//scambia

la moltiplicazione per -1 conduce al risultato cercato

% (-1)

In conclusione le 3 formule distinte di Werner sono

e collegano dei prodotti di funzioni con delle somme, mentre le quattro di prostaferesi

associano a somme delle medesime funzioni, dei prodotti.

To rules

wernerSenSen=toRule[%]

proSenAddSen=toRule[sen[p]+sen[q]==2 cos[((p-q)/2)] sen[((p+q)/2)],{p,q}]

proCosAddCos=toRule[cos[p]+cos[q]==2 cos[((p-q)/2)] cos[((p+q)/2)],{p,q}]

proCosDiffCos=toRule[%,{p,q}]

Riassunto di tutte le identità dimostrate

Tabelle

Presentiamo infine due tabelle riassuntive di tutte le identità dimostrate in questo notebook con associati i rispettivi nomi simbolici usati.

Identità goniometriche dello stesso angolo

{idFondamentale,cosNotosen,tanNotosen,senNotocos,tanNotocos,senNototan,cosNototan}={((cos[α])^2)+((sen[α])^2):>1,Abs[cos[α]]:>(Sqrt[1-((sen[α])^2)]),Abs[tan[α]]:>((Abs[sen[α]])/(Sqrt[1-((sen[α])^2)])),Abs[sen[α]]:>(Sqrt[1-((cos[α])^2)]),Abs[tan[α]]:>((Sqrt[1-((cos[α])^2)])/(Abs[cos[α]])),Abs[sen[α]]:>(Sqrt[(((tan[α])^2)/(1+((tan[α])^2)))]),Abs[cos[α]]:>(Sqrt[(1/(1+((tan[α])^2)))])};
Grid[Transpose[{{"idFondamentale","cosNotosen","tanNotosen","senNotocos","tanNotocos","senNototan","cosNototan"},toIdentita/@{idFondamentale,cosNotosen,tanNotosen,senNotocos,tanNotocos,senNototan,cosNototan}}],Frame->All,Spacings->{2,1},Alignment->{{Left,Center}},Background->{Automatic,{{Automatic,RGBColor[0.85,0.95,0.75]}}}]//TraditionalForm

Identità goniometriche di angoli diversi

{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff,senAdd,tanAdd,tanDiff,senDupl,cosDupl,cosDuplSen,cosDuplCos,tanDupl,senBis,cosBis,tanBis,senRaz,cosRaz,tanRaz,wernerCosSen,wernerCosCos,wernerSenSen,proSenAddSen,proSenDiffSen,proCosAddCos,proCosDiffCos}={((cos[α_])^2)+((sen[α_])^2):>1,sen[(π/2)-α_]:>cos[α],cos[(π/2)-α_]:>sen[α],tan[(π/2)-α_]:>cot[α],sen[(π/2)+α_]:>cos[α],cos[(π/2)+α_]:>-sen[α],tan[(π/2)+α_]:>-((cos[α])/(sen[α])),sen[π-α_]:>sen[α],cos[π-α_]:>-cos[α],tan[π-α_]:>-tan[α],sen[π+α_]:>-sen[α],cos[π+α_]:>-cos[α],tan[π+α_]:>tan[α],sen[-α_]:>-sen[α],cos[-α_]:>cos[α],tan[-α_]:>-tan[α],cos[α_-β_]:>cos[α] cos[β]+sen[α] sen[β],cos[α_+β_]:>cos[α] cos[β]-sen[α] sen[β],sen[α_-β_]:>cos[β] sen[α]-cos[α] sen[β],sen[α_+β_]:>cos[β] sen[α]+cos[α] sen[β],tan[α_+β_]:>((tan[α]+tan[β])/(1-tan[α] tan[β])),tan[α_-β_]:>((tan[α]-tan[β])/(1+tan[α] tan[β])),sen[2 α_]:>2 cos[α] sen[α],cos[2 α_]:>((cos[α])^2)-((sen[α])^2),cos[2 α_]:>1-2 ((sen[α])^2),cos[2 α_]:>-1+2 ((cos[α])^2),tan[2 α_]:>((2 tan[α])/(1-((tan[α])^2))),Abs[sen[((α_)/2)]]:>((Sqrt[1-cos[α]])/(Sqrt[2])),Abs[cos[((α_)/2)]]:>((Sqrt[1+cos[α]])/(Sqrt[2])),Abs[Tan[((α_)/2)]]:>((Sqrt[1-cos[α]])/(Sqrt[1+cos[α]])),sen[α_]:>((2 tan[(α/2)])/(1+((tan[(α/2)])^2))),cos[α_]:>((1-((tan[(α/2)])^2))/(1+((tan[(α/2)])^2))),tan[α_]:>((2 tan[(α/2)])/(1-((tan[(α/2)])^2))),cos[β_] sen[α_]:>(1/2) (sen[α-β]+sen[α+β]),cos[α_] cos[β_]:>(1/2) (cos[α-β]+cos[α+β]),sen[α_] sen[β_]:>(1/2) (cos[α-β]-cos[α+β]),sen[p_]+sen[q_]:>2 cos[((p-q)/2)] sen[((p+q)/2)],sen[p_]-sen[q_]:>2 cos[((p+q)/2)] sen[((p-q)/2)],cos[p_]+cos[q_]:>2 cos[((p-q)/2)] cos[((p+q)/2)],cos[p_]-cos[q_]:>-2 sen[((p-q)/2)] sen[((p+q)/2)]};
Grid[Transpose[{{"idFondamentale","senCompl","cosCompl","tanCompl","senDiffPi2","cosDiffPi2","tanDiffPi2","senSuppl","cosSuppl","tanSuppl","senExpl","cosExpl","tanExpl","senOpp","cosOpp","tanOpp","cosDiff","cosAdd","senDiff","senAdd","tanAdd","tanDiff","senDupl","cosDupl","cosDuplSen","cosDuplCos","tanDupl","senBis","cosBis","tanBis","senRaz","cosRaz","tanRaz","wernerCosSen","wernerCosCos","wernerSenSen","proSenAddSen","proSenDiffSen","proCosAddCos","proCosDiffCos"},toIdentita/@{idFondamentale,senCompl,cosCompl,tanCompl,senDiffPi2,cosDiffPi2,tanDiffPi2,senSuppl,cosSuppl,tanSuppl,senExpl,cosExpl,tanExpl,senOpp,cosOpp,tanOpp,cosDiff,cosAdd,senDiff,senAdd,tanAdd,tanDiff,senDupl,cosDupl,cosDuplSen,cosDuplCos,tanDupl,senBis,cosBis,tanBis,senRaz,cosRaz,tanRaz,wernerCosSen,wernerCosCos,wernerSenSen,proSenAddSen,proSenDiffSen,proCosAddCos,proCosDiffCos}}],Frame->All,Spacings->{2,1},Alignment->{{Left,Center}},Background->{Automatic,{{Automatic,RGBColor[0.8,0.95,0.95]}}}]//TraditionalForm