kill(all);

assume( l>0 , a>0 , b>a );

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 : factor(ev( fD , solsbis[1] ));

provo a calcolare queste quantita' per un dimensionamento specifico dell'albero

dim : [ a=40 , b=65, d=22 , E=210000, F=1150];
dim : append( dim, [ev(J=%pi*d^4/64 , dim)] );

implicito sistema di unita' di misura
N,mm,s,tonn  

tonn in quanto F=m*a con F in N e a in mm/s^2 => m in tonn

densita sono in tonn/mm^3 , rhoH20 = 1e-9 tonn/mm^3

ev([fC,rC,fmax], dim, numer);

discussione risultati in forma possibilmente piu' generalizzata

[fC,fmax,rC];

cerco di costruirmi dei gruppi dimensionali significativi per frecce e rotazioni

frif : l^3*F/E/J$ /* 3x la freccia di una trave a sbalzo pari sezione
                   e pari lunghezza, caricata da forza F di estremita' */
rrif : l^2*F/E/J$ /* ?x la rotazione di una trave a sbalzo pari sezione
                   e pari lunghezza, caricata da forza F di estremita' */

definisco forme normalizzate per le tre quantita' di interesse

[ nfC, nfmax, nrC ] : [ fC, fmax, rC ] / [ frif, frif, rrif ];

provo ora a sostituire "a" e "b" con delle espressioni in funzione di "l" 
e di una variabile adimensionale "eta" t.c. 
a =    eta *l
b = (1-eta)*l

dimentico la definizione di "l" in funzione di "b" ed "a"

kill(l);

procedo con le sostituzioni, ossia dei "trova e sostituisci"

subst( espr. sostitutiva , espr. da trovare , espressione su cui opero  )

[nfC,nfmax,nrC]$
subst(    eta *l , a , % )$
subst( (1-eta)*l , b , % )$
ratsimp(%);