kill(all);

definisco lunghezza totale albero

l : a + b;

equazioni di equilibrio alla rotazione attorno ad A e attorno a B

eqrAz : +RA*0 -F*a -C -P*(a+xi*b) + RB*l = 0 ;
eqrBz : -RA*l +F*b -C +P*(1-xi)*b + RB*0 = 0 ; 

risolvo la lista di equazioni (aka. sistema) in una lista di incognite

lista : [ ele1 ,ele2, ele3 ];

lista[3] restituisce ele3

sols : linsolve( [ eqrAz , eqrBz ] , [ RA , RB ] );

assegno a RA e RB le rispettive espressioni secondo sols
(uso assegnazione multipla)

[RA ,RB] : ev(  [RA ,RB] , sols );

Tratto AC: momento flettente

MfAC : RA*sAC;

Tratto AC: energia potenziale elastica

UAC : integrate( MfAC^2/2/E/J , sAC , 0 , a )$

Tratto BD: momento flettente e en.pot.el.

MfBD : RB*sBD;
UBD : integrate( MfBD^2/2/E/J , sBD , 0 , b*(1-xi) )$

Tratto DC: momento flettente e en.pot.el.

MfDC : RB*(b*(1-xi)+sDC) - P*sDC;

UDC: integrate( MfDC^2/2/E/J , sDC , 0 , b*xi )$

energia potenziale elastica totale

U : UAC + UBD + UDC;

tentativi di manipolazione dell'espressione di U, per 
renderla piu' compatta.

ratsimp(U)$
expand(num(%))/factor(denom(%));
U : %;

pocci vari con funzioni trigonometriche
sin(3*x);
trigexpand(%);
ratsimp(trigreduce(%));
trigsimp(2*sin(x)^2+cos(x)^2);

procediamo col calcolo delle frecce e delle rotazioni, applicando Castigliano

fC : diff( U , F , 1) $

rC : diff( U , C    ) $

fD : diff( U , P    ) $

dichiaro la natura fittizia di P e C,
poi manipolo un po' per tentativi le espressioni che ottengo
e le uso per ridefinire le quantita' da cui son partito

[fC,rC,fD] : factor(
    ev([fC,rC,fD] , P=0 , C=0 )
);

devo trovare la posizione D in cui la freccia fD e' massima;
cerco massimi interni, quindi punti stazionari in xi
NB: devo discutere a parte la possibilita' di avere massimi 
    estremali che non sono punti stazionari

ratsimp( 
    diff(fD , xi) = 0 
);
solsbis : solve( % , xi );

ho due soluzioni; scarto immediatamente quelle che non
rientrano nell'intervallo 0 <= xi <= 1

solsbis : expand(solsbis);

la seconda soluzione e' evidentemente maggiore di 1, per cui la scarto

mi rimane la prima, prendo per buona quella..

procedo a valutare fD per il valore di xi associata alla prima soluzione

fmax : ev( fD , solsbis[1] );