Мисол: Ушбу , , , лар учун стержен ўртасининг( ) тебранишини аниќланг ва уни график кўринишда тасвирланг.
Ечиш. , , лар учун, юќорида келтирилган дастурдан фойдаланиб берилган масаланинг сонли ечими олинди ва натижа ќуйидаги графикда тасвирланган.
Стержен тебранишини аниќлашга Паскаль тилида тузилган дастур матни:
program kol_ster; uses crt;
const n=5; { Бубнов-Галёркин усулидаги йиѓиндилар сони }
nt=151; { бўйича олинган нуќталар сони }
ht=0.1; { бўйича олинган ќадам }
n2=2*n;
type
matrisa=array[1..n,1..n] of real;
vektor=array[1..n] of real;
vektor2=array[1..n2] of real;
vektort=array[1..nt] of real;
my_fun=function (b:real):real;
var
a:matrisa; v0,v:vektor2; b:vektor; t1,s,int1:real;
l,i,j,k,r,p:integer; vt:vektort;
function fj(x:real):real;
begin
fj:= 1+0.1*x; { – функциясининг кўриниши}
end;
function fj1(x:real):real;
begin
fj1:= 0.1; { – функциясининг кўриниши}
end;
function fj2(x:real):real;
begin
fj2:= 0.0 ; { – функциясининг кўриниши}
end;
function ffi(x:real):real;
begin
ffi:=0.; { – функциясининг кўриниши}
end;
function ffj(x:real):real;
begin
ffj:=0; { - функциясининг кўриниши}
end;
function ffis(x:real):real;
begin
ffis:=ffi(x)*sin(r*pi*x);
end;
function ffjs(x:real):real;
begin
ffjs:=ffj(x)*sin(r*pi*x);
end;
function fm(x:real):real;
begin
fm:=100; { – функциясининг кўриниши}
end;
function f(x:real):real;
var a1,a2,a3,a4,as,ac,fx0,fx1,fx2:real;
begin
a1:=k*pi; a2:=a1*a1; a3:=a2*a1; a4:=a2*a2;
fx0:=fj(x); fx1:=fj1(x); fx2:=fj2(x);
as:=sin(k*pi*x); ac:=cos(k*pi*x);
f:=2.*(-a4*fx0*as+a2*fx2*as+2*a3*fx1*ac)*sin(r*pi*x)/fm(x);
end;
function q0(x:real):real;
begin
q0:=20; { – функциясининг кўриниши}
end;
function q(x:real):real;
begin
q:=q0(x)*sin(p*pi*x)/fm(x);
end;
procedure simpson(a,b:real;n:integer; g:my_fun; var int:real);
var h,s1,s2:real;
begin
h:=(b-a)/(2*n);
s1:=0; s2:=0;
s:=g(a)+g(b);
for i:=1 to n do s1:=s1+g(a+(2*i-1)*h);
for i:=1 to n-1 do s2:=s2+g(a+2*i*h);
int:=h*(s+4*s1+2*s2)/3;
end;
procedure pv(x: real; y: vektor2; var dy: vektor2);
begin
for i:=1 to n do
begin
dy[i]:=y[n+i];
s:=0;
for l:=1 to n do s:=s+a[i,l]*y[l];
dy[n+i]:=s+b[i];
end;
end;
procedure rungikytta(t: real; y0: vektor2; var dy: vektor2);
var v3,fc,fk1,fk2,fk3,fk4: vektor2;
begin
pv(t,y0,fc);
for i:=1 to n2 do begin fk1[i]:=ht*fc[i];
v3[i]:=y0[i]+0.5*fk1[i] end;
t:=t+0.5*ht; pv(t,v3,fc);
for i:=1 to n2 do begin fk2[i]:=ht*fc[i];
v3[i]:=y0[i]+0.5*fk2[i] end;
pv(t,v3,fc);
for i:=1 to n2 do begin fk3[i]:=ht*fc[i];
v3[i]:=y0[i]+fk3[i] end;
t:=t+0.5*ht; pv(t,v3,fc);
for i:=1 to n2 do begin fk4[i]:=ht*fc[i];
dy[i]:=y0[i]+0.166666667*(fk1[i]+2*fk2[i]+2*fk3[i]+fk4[i]) end;
end;
begin clrscr;
for r:=1 to n do for k:=1 to n do
begin
simpson(0,1,10,f,int1);
a[r,k]:=int1;
end;
for p:=1 to n do
begin
simpson(0,1,10,q,int1);
b[p]:=2*int1;
end;
for r:=1 to n do
begin
simpson(0,1,10,ffis,int1);
v0[r]:=2*int1;
end;
for r:=1 to n do
begin
simpson(0,1,10,ffjs,int1); v0[n+r]:=2*int1;
end;
for j:=1 to nt do
begin t1:=(j-1)*ht;
rungikytta(t1,v0,v);
for i:=1 to n2 do v0[i]:=v[i]; s:=0;
for k:=1 to n do s:=s+v[k]*sin(k*pi/2);
vt[j]:=s;
end;
for i:=1 to nt do write(vt[i]:8:3);
end.
Ишни бажариш тартиби:
Берилган масаланинг ечиш алгоритмини блок-схема кўринишда тасвирлаш.
Турбо-Паскаль муҳитида дастурни киритиш.
Дастурни компьютер хотирасида саќлаш ва дастурдаги мавжуд хатоларни топиш ва уларни тўѓрилаш.
Дастурни ишга тушириш ва масаланинг бошланѓич маълумотларини киритиб натижалар олиш.
Олинган натижалар таҳлили асосида хулосалар ќилиш.
Лаборатория ишини расмийлаштириш.
Назорат саволлари:
Ўзгарувчан кесимли стержен тебраниши масаласини математик модели.
Ўзгарувчан кесимли стержен тебраниши масаласининг мувозанат тенгламасини келтиринг.
Ўзгарувчан кесимли стержен тебраниши масаласини ечиш алгоритмини келтиринг.
Стержен четларининг маҳкамланиш турларини айтинг.
9-ЛАБОРАТОРИЯ ИШИ
Мавзу: Стержен турѓунлиги масаласининг математик модели ва уни ечиш усули.
Керакли техник воситалар:
Шахсий компьютер.
Керакли дастурий воситалар:
Турбо Паскаль дастурлаш системаси ва стержен турѓунлиги масаласининг таќрибий ҳисоблаш учун тузилган дастурлар.
Ишнинг маќсади: Талабаларни стержен турѓунлиги масаласининг математик модели ва уни ечиш усули алгоритми билан таништириш ҳамда унга Паскаль тилида тузилган дастурда ишлашга ўргатиш.
Топшириќ
Агар q=0, Ui(0)=10-3, Wi(0)=0 бўлса критик ваќт ва критик юкни аниќланг. Бу ерда s, i параметрларни ќуйидаги кўринишда олинг
1. i=1; s=0,1; 2. i=3; s=0,1; 3. i=5; s=0,1; 4. i=7; s=0,1;
5. i=1; s=0,05; 6. i=3; s=0,05; 7. i=5; s=0,05; 8. i=7; s=0,05;
9. i=1; s=0,01; 10. i=3; s=0,01; 11. i=5; s=0,01; 12. i=7; s=0,01;
13. i=1; s=0,025; 14. i=3; s=0,025; 15. i=5; s=0,025; 16. i=7; s=0,025;
Н азарий ќисм
Узунлиги га тенг бўлган, учлари шарнирли ќилиб маҳкамланган ўзгармас кесимли стерженга, расмда кўрсатилгандек сиќувчи куч таъсир этаётган бўлсин.
Бу ҳолда стерженга инерция кучидан ташќари, яна куч таъсир этади. Агар олдинги ќаралган масалалардек, стерженнинг мувозанат тенгламасидан фойдалансак, ќуйидаги
(1)
тенгламани ҳосил ќиламиз. (1) тенглама ва ларда ќуйидаги чегаравий
; (2)
ва да бошланѓич
, (3)
шартлар билан биргаликда, эластик стерженнинг турѓунлиги ҳаќидаги масаланинг математик моделини ташкил этади.
Турѓунлик масаласининг асосий муаммоларидан бири критик ваќт ва критик юк ни топишдан иборат.
Турѓунлик назариясида критик ваќт ни топишнинг бир неча критерия(аломати)лари мавжуд. Амалиётда кенг фойдаланиладиган критериялардан бири бу – стержен ўзгариш функциясини, стержен ќирќимининг радиусидан катта бўлмаслигидир.
Бубнов-Галёркин усулига кўра (1) тенгламанинг (2) шартни ќаноатлантирувчи ечимини
(4)
кўринишда ќидирамиз. (4) ни (1) га олиб бориб ќўямиз, ва
тенгликни ҳосил ќиламиз. Бу тенгликни иккала томонини га кўпайтириб, х бўйича оралиќда интеграллаймиз. Натижада
(5)
тенгламалар системасига эга бўламиз. Бу ерда хусусий тебраниш частотаси; Эйлер критик кучи; .
(5) да ўлчовсиз параметрларни киритиб,
, (6)
тенгламага эга бўламиз. Бу ерда ва - ўлчовсиз параметрлар; - стержен материалида товуш тарќалиш тезлиги; -стержен материалининг зичлиги; -стержен инерция кесимининг радиуси.
(6) тенгламалар системасини
(7)
кўринишда ёзиб оламиз. (7) учун бошланѓич шартлар ќуйидагича бўлади:
(8)
(7) тенгламанинг (8) шартларни ќаноатлантирувчи ечимини Рунге-Кутта усулида аниќлаймиз. Ваќт бўйича ҳар бир ќадамда стержен турѓунлиги критерияси шартини текшириб борамиз ва бу шарт бажарилгандаги t ни критик ваќт сифатида ќабул ќиламиз.
Стержен турѓунлигини аниќлаш учун Паскаль тилида тузилган дастур матни:
program ustoy_st; uses crt;
label 1;
const N=3; s=0.1; q=0; nt=2551; ht=0.1;
type
vektor2=array[1..2] of real;
matr=array[1..nt] of real;
var
v0,v:vektor2; w:matr; t1:real; i,j:integer;
function fdel(x:real):real;
var a1:real;
begin
a1:=x/2-trunc(x/2); if a1=0 then fdel:=0 else fdel:=2;
end;
procedure pv(x: real; y: vektor2; var dy: vektor2);
begin
dy[1]:=y[2]; dy[2]:=2*fdel(n)*s*q/n/pi-n*n*s*(n*n-x)*y[1];
end;
procedure rungikytta(t: real; y0: vektor2; var dy: vektor2);
var v3,fc,fk1,fk2,fk3,fk4: vektor2;
begin
pv(t,y0,fc); for i:=1 to 2 do begin fk1[i]:=ht*fc[i];
v3[i]:=y0[i]+0.5*fk1[i] end;
t:=t+0.5*ht; pv(t,v3,fc);
for i:=1 to 2 do begin fk2[i]:=ht*fc[i];
v3[i]:=y0[i]+0.5*fk2[i] end;
pv(t,v3,fc); for i:=1 to 2 do begin fk3[i]:=ht*fc[i];
v3[i]:=y0[i]+fk3[i] end;
t:=t+0.5*ht; pv(t,v3,fc); for i:=1 to 2 do begin fk4[i]:=ht*fc[i];
dy[i]:=y0[i]+0.166666667*(fk1[i]+2*fk2[i]+2*fk3[i]+fk4[i]) end;
end;
begin clrscr; v0[1]:=0.001; v0[2]:=0;
for j:=1 to nt do
begin t1:=(j-1)*ht; rungikytta(t1,v0,v);
for i:=1 to 2 do v0[i]:=v[i]; w[j]:=v[1];
if w[j]>=1 then goto 1;
end;
1: for i:=1 to j do write(w[i]:8:3);
writeln; writeln('n=',n:3,' t=',t1:6:3);
end.
Do'stlaringiz bilan baham: |