Segédlet BMEGEMMAGM5 “Végeselem módszer alapjai” tárgy laborgyakorlatához.
Készítette: Dr. Kossa Attila, BME Műszaki Mechanikai Tanszék, 2013. szeptember 27.

A rugalmas szál differenciálegyenletének megoldásával kapott egzakt megoldások:

f1=(((x^2) (528 L M1-3084 (L^3) p0+32 F1 L (36 L-11 x)+84 M1 x+769 (L^2) p0 x))/(3072 IE L));
f2=(1/(3072 IE L))(-1536 (L^3) M1+3072 (L^2) M1 x-12 L (-96 F1 L+84 M1+257 (L^2) p0) (x^2)+(-352 F1 L+84 M1+769 (L^2) p0) (x^3));
f3=(1/(3072 IE L))(-512 (L^3) (8 F1 L+3 M1)+3072 (L^2) (2 F1 L+M1) x-12 L (160 F1 L+84 M1+257 (L^2) p0) (x^2)+(160 F1 L+84 M1+769 (L^2) p0) (x^3));
f4=(1/(3072 IE L))(4 L-x) (32 (L^2) (-32 F1 L-12 M1+81 (L^2) p0)+8 L (160 F1 L+84 M1-351 (L^2) p0) x+(-84 M1+5 L (-32 F1+51 L p0)) (x^2)-128 L p0 (x^3));
f5=(1/(192 IE))(4 L-x) (96 F1 (L^2)+60 L M1+2979 (L^3) p0-1584 (L^2) p0 x+192 L p0 (x^2)-8 p0 (x^3));

A közelítés fokszáma:

n=3;

Megoldó rész:

L=0.5;F1=-4500;M1=2000;p0=-300;
IE=Iz=(((((0.03))^4)π)/64.)*210*(10^9);
ω[x_]=(x^2)(x-4L);
B[x_]=ω[x]*Table[{x^k},{k,0,n}];
Bd1[x_]=FullSimplify[D[B[x],x]];
Bd2[x_]=FullSimplify[D[B[x],{x,2}]];
S=(∫_0^(7L))(IE*(Bd2[x].Transpose[Bd2[x]]))\[DifferentialD]x;
Q=(F1)*B[2L]+(M1)*Bd1[L]+(∫_(3L)^(7L))((p0)B[x])\[DifferentialD]x;
A=LinearSolve[S,Q];
v[x_]=FullSimplify[Transpose[B[x]].A][[1,1]];


pp=Plot[v[x],{x,0,7*(0.5)},PlotStyle->{Blue,Thick},AxesLabel->{"x [m]","v [m]"}];
p1=Plot[f1,{x,0,L},PlotStyle->{Red,Dashed}];
p2=Plot[f2,{x,L,2L},PlotStyle->{Red,Dashed}];
p3=Plot[f3,{x,2L,3L},PlotStyle->{Red,Dashed}];
p4=Plot[f4,{x,3L,4L},PlotStyle->{Red,Dashed}];
p5=Plot[f5,{x,4L,7L},PlotStyle->{Red,Dashed}];
pexact=Show[{p1,p2,p3,p4,p5},PlotRange->All,AxesOrigin->{0,0}];
Show[{pp,pexact},PlotRange->All]


min=Minimize[{f3,2L≤x≤3L},x][[1]];


r1=Abs[((v[x]-f1)/min)]*100;
r2=Abs[((v[x]-f2)/min)]*100;
r3=Abs[((v[x]-f3)/min)]*100;
r4=Abs[((v[x]-f4)/min)]*100;
r5=Abs[((v[x]-f5)/min)]*100;
pr1=Plot[r1,{x,0,L},PlotStyle->{Orange,Thick},PlotRange->All,AxesLabel->{"x [m]","rel. hiba [%]"}];
pr2=Plot[r2,{x,L,2L},PlotStyle->{Orange,Thick},PlotRange->All];
pr3=Plot[r3,{x,2L,3L},PlotStyle->{Orange,Thick},PlotRange->All];
pr4=Plot[r4,{x,3L,4L},PlotStyle->{Orange,Thick},PlotRange->All];
pr5=Plot[r5,{x,4L,7L},PlotStyle->{Orange,Thick},PlotRange->All];
Show[{pr1,pr2,pr3,pr4,pr5},PlotRange->{All,{0,100}},AxesOrigin->{0,0}]