Ïðîãðàììà 49. Çàäà÷è 66, 67
| > | restart:with(plottools):with(plots): |
| > | ArchÌîäóëü:=module() |
| > | export Ðåøåíèå,ÏóñêArch: |
| > | Ðåøåíèå:=proc() local âåëè÷èíà,øàðíèðû,m0,qA,NA,íàãð,âèä,ðàñïðíàãð,L,f,y,a, |
| > | F,b,q,l,n1,n2,n_1,m_1,q_1,c1,c2,mA2,qA2,NA2,X1,d11,D1p, |
| > | X,h,Ñòðåëêà,Ra,Rb,cosf,sinf,qB,mB,mA,H,i,j,qBF,mBF, |
| > | Àðêà,ÝïþðQ,ÝïþðM,ÝïþðN,ÝïþðQ2,ÝïþðM2,ÝïþðN2,Ðèñ: |
| > | use Maplets[Tools] in |
| > | a:=Get('Ta'::list); # êîîðäèíàòû òî÷åê ïðèëîæ. ñèë, ì |
| > | F:=Get('TF'::list); # ñèëû, êÍ |
| > | b:=Get('Tb'::list); # êîîðäèíàòà íà÷àëà q, ì |
| > | q:=Get('Tq'::list); # ðàñïð. íàãðóçêà q, êÍ/ì |
| > | l:=Get('Tl'::list): # äëèíà ðàñïð. íàãðóçêà q, ì |
| > | h:=Get('Th'::float);# âûñîòà ñå÷, ì |
| > | f:=Get('Tf'::float);# ñòðåëà ïîäúåìà, ì |
| > | L:=Get('TL'::float);# 0.5 ïðîëåòà, ì |
| > | n1:=nops(a): n2:=nops(q): # ×èñëî F, q |
| > | Rb:=-(add(F[i]*a[i],i=1..n1)+add(q[i]*l[i]*(b[i]+l[i]/2),i=1..n2))/2/L: # Ïðàâ ðåàêö |
| > | Ra:=-add(F[i],i=1..n1)-add(q[i]*l[i],i=1..n2)-Rb: # Ëåâ ðåàêöè |
| > | cosf:=x->subs(t=x,1/sqrt(1+diff(y(t),t)^2)): |
| > | sinf:=x->subs(t=x,diff(y(t),t))*cosf(x): |
| > | c1:=(h/f)^2/12; c2:=h^2/f/12; |
| > | m_1:=x-> y(x)/f: #åäèíè÷í ýïþðà m |
| > | q_1:=x-> sinf(x)/f:#åäèíè÷í ýïþðà q |
| > | n_1:=x-> cosf(x)/f:#åäèíè÷í ýïþðà n |
| > | y:=proc(x) f/L^2*(2*L-x)*x:end: # Ôîðìà îñè àðêè |
| > | n1:=n1+1: |
| > | F:=[Ra,op(F)]:#Äîáàâë ðåàêö îïîðû â ÷èñëî ñèë |
| > | a:=[0,op(a)]: #êîîðä ëåâ îïîðû |
Áàëî÷í ïîïåðå÷í ñèëà
| > | qBF:=x->add(piecewise(x>=a[i],F[i],x<=a[i],0),i=1..n1): |
| > | qB:=qBF+add(piecewise(x>=b[i] and x<=b[i]+l[i],q[i]*(x-b[i]),x<=b[i],0,x>=b[i]+l[i],q[i]*l[i]),i=1..n2): |
Áàëî÷íûé ìîìåíò
| > | mBF:=x->add(piecewise(x>=a[i],(x-a[i])*F[i],x<=a[i],0,0),i=1..n1): |
| > | mB:=mBF+add(piecewise(x>b[i] and x<b[i]+l[i],(x-b[i])^2/2*q[i],x>=b[i]+l[i],(x-b[i]-l[i]/2)*l[i]*q[i],0),i=1..n2): |
| > | Ñòðåëêà:=width=0.05,head_length=0.4,head_width=0.2,color=red:# Ïàðàìåòðû ñòðåëêè |
| > | ðàñïðíàãð:=CURVES(seq([[b[i],f+0.5],[b[i]+l[i],f+0.5]],i=1..n2),THICKNESS(10)): |
| > | íàãð:=arrow({seq([a[i],y(a[i])+1],i=2..n1)},{seq([0,-1],i=2..n1)},Ñòðåëêà): |
| > | âåëè÷èíà:=PLOT(seq(TEXT([a[i],y(a[i])+1],convert(abs(F[i]),symbol),ALIGNRIGHT),i=2..n1)):# |
| > | øàðíèðû:=PLOT(POINTS([L,f],[0,0],[2*L,0],SYMBOL(CIRCLE)),COLOR(RGB,1,0,0)): |
| > | m0:=0: for j to n1 do if a[j]<L then m0:=m0+(L-a[j])*F[j]; fi; od: |
| > | for i to n2 do if b[i]<L then |
| > | if b[i]+l[i]<L then m0:=m0+(L-b[i]-l[i]/2)*q[i]*l[i]; |
| > | else m0:=m0+q[i]*(L-b[i])^2/2; |
| > | fi; |
| > | fi: |
| > | od: |
| > | H:=m0/f;# Ðàñïîð |
| > | qA:=x->qB(x)*cosf(x)-H*sinf(x): # Ïîïåðå÷í ñèëà â àðêå |
| > | NA:=x->-qB(x)*sinf(x)-H*cosf(x): # Ïðîäîëüí ñèëà â àðêå |
| > | mA:=x->mB(x)-H*y(x): # Ìîìåíò â 3-õ øàðíèðíîé àðêå |
| > | âèä:=color=[red,blue],thickness=[1,2],legend=["Arch","Beam"]: |
| > | D1p:=int(m_1(x)*mA(x)/cosf(x)+c2*NA(x),x=0..2.*L); |
| > | d11:=int(m_1(x)^2/cosf(x)+c1*cosf(x),x=0..2.*L); |
| > | X1:=-D1p/d11; |
| > | mA2:=x->m_1(x)*X1+mA(x): |
| > | qA2:=x->q_1(x)*X1+qA(x): |
| > | NA2:=x->n_1(x)*X1+NA(x): |
| > | Set (TRa=Ra): Set (TRb=Rb): Set (TX1=X1):Set(TD1p=D1p): Set(Td11=d11): |
| > | X:=x=0..2*L: |
| > | Àðêà:=display(plot(y(x),X,color=blue)): |
| > | ÝïþðM:=display(plot([mA(x),mB(x)],X,âèä,title="Epure M3")); |
| > | ÝïþðQ:=display(plot([qA(x),qB(x)],X,âèä,title="Epure Q3")); |
| > | ÝïþðN:=display(plot(NA(x),X,title="Epure N3")); |
| > | ÝïþðM2:=display(plot([mA2(x),mB(x)],X,âèä,title="Epure M2")); |
| > | ÝïþðQ2:=display(plot([qA2(x),qB(x)],X,âèä,title="Epure Q2")); |
| > | ÝïþðN2:=display(plot(NA2(x),X,title="Epure N2")); |
| > | Ðèñ:=display(ðàñïðíàãð,âåëè÷èíà,øàðíèðû,Àðêà,íàãð);# Àðêà è ñèëû |
| > | end use: |
| > | Ðèñ,ÝïþðM,ÝïþðQ,ÝïþðN,ÝïþðM2,ÝïþðQ2,ÝïþðN2 |
| > | end proc: |
| > | ÏóñêArch:=proc() |
| > | local Êíîïêà,Ev,i,Txt,a,c,mplt,Ýêðàí; |
| > | use Maplets:-Elements in |
| > | Ýêðàí:=Plotter['PL1']('height=300'): |
| > | a[1]:=["[xP]=",TextField['Ta'](9,'value'=[4,10],'tooltip'="Ââåäèòå êîîðäèíàòû ñèë")]: |
| > | a[2]:=["[P]=", TextField['TF'](9,'value'=[-9,-6],'tooltip'="Ââåäèòå ñèëû")]: |
| > | a[3]:=["[xq]=",TextField['Tb' ](9,'value'=[6],'tooltip'="Ââåäèòå êîîðäèíàòû ëåâûõ êîíöîâ q")]: |
| > | a[4]:=["[q]=", TextField['Tq'](9,'value'=[-2],'tooltip'="Ââåäèòå ðàñïðåäåëåííûå ñèëû q")]: |
| > | a[5]:=["Lq=",TextField['Tl' ](9,'value'=[6],'tooltip'="Ââåäèòå äëèíû ó÷àñòêîâ q")]: |
| > | a[6]:=["h=", TextField['Th' ](9,'value'=0.6,'tooltip'="Ââåäèòå âûñîòó ñå÷åí")]: |
| > | a[7]:=["f=", TextField['Tf' ](9,'value'=4.0,'tooltip'="Ââåäèòå âûñîòó àðêè")]: |
| > | a[8]:=["L=", TextField['TL' ](9,'value'=6.0,'tooltip'="Ââåäèòå 0.5 ïðîëåòà àðêè")]: |
| > | a[9]:=["Ra",TextField['TRa'](9)]: |
| > | a[10]:=["Rb",TextField['TRb'](9)]: |
| > | a[11]:=["D1p",TextField['TD1p'](9)]: |
| > | a[12]:=["d11",TextField['Td11'](9)]: |
| > | a[13]:=["X1",TextField['TX1'](9)]: |
| > | Ev:=proc(n) Evaluate(PL1 = 'display(Ðåøåíèå()[n])'):end; |
| > | Êíîïêà:="Àðêà","M3","Q3","N3","M2","Q2","N2": |
| > | for i to 7 do |
| > | c[i]:=Button(Êíîïêà[i],Ev(i)): |
| > | od: |
| > | mplt:= Maplet(Window('title'="Àðêà", |
| > | [ BoxRow(Ýêðàí,BoxColumn(seq(a[i],i=1..8)),[seq(c[i],i=1..7)]),[seq(a[i],i=9..13)]] |
| > | ) #Window |
| > | ):#Maplet |
| > | Maplets:-Display(mplt): |
| > | end use; |
| > | end proc; |
| > | end module: |
| > | ArchÌîäóëü:-ÏóñêArch(): |
Initializing Java runtime environment.
| > |
| > |