Смекни!
smekni.com

К решению нелинейных вариационных задач (стр. 9 из 9)

10. Краснов М.Л., Макаренко Г.И., Киселев А.И. Вариационное исчис­ление. "Наука", М., 1967.

11. Курант Р. Курс дифференциального и интегрального исчисления. "Наука", М., 1967.

12. Матвеев И.М. Дифференциальные уравнения. "Наука", 1970.

13. Мышкис А.Д. Лекции по высшей математике ."Наука", М., 1969.

14. Сайфуллин Э.Г., Саченков А.В., Тимербаев P.M. Основные уравнения теории упругости в напряжениях и перемещениях. Сборник исследова­ний по теории пластин и оболочек, в. 18, часть 1. Казань, Изд. КТУ, 1985.

15. Соминский И.С. Элементарная алгебра. Дополнительный курс. Физ-матгиз, М., 1969.

16. Циаф Л.Я. Вариационное исчисление и интегральные уравнения.

"Наука", 1970г.

t„ 17. Эльсгольц Л.Э. Дифференциальные уравнения и вариационное исчис­ление. "Наука", 1969.

• ^. "


HWUA-cA^ /^1СЛ^И-1с^«^-''1Д.

program diplomi; 4.

uses graph,crt;

label 1;

const n=200;

type mas=array[0 ..n]of real;

var a,b,c,d,f,y,p,xx,l,r,g: mas;

j,z,x,h: real;e: char;

i,j1,il: integer;

ff:text;

procedure vap(var xx,y : mas) ; клил-ели.^- бор-с.(,ои/^с^<^о^

var x,h: real; i: integer; ' ^с^-оли,

a,b,с,d,f,p:mas;

begin

h: = 2/n; x: =1;

for i: =0 to n do

begin

f[i]:= exp(-x*x) ;

p[i]: = cos(x*x);

xx[i]: =x;

x: =x+h end;

УСО].- =0;y[n]: =4;

for i: =1 to n do a[i]:=2+h*h*f[i];

b[l]:=y[0]-h*h*p[l];

b[n-l]: =y[n]-h*h*p[n-l];

for i: =2 to n-2 do b[i]: =-h*h*p[i];

c[l]: =a[l]; d[l]: =b[l];

for i:=2 to n-1 do

begin

c[i3: =a[i]-l/c[i-l];

d[i]: =b[i]+d[i-l]/c[i-l];

yCn^l]: =d[n-l]/c[n-l];

for i:=2 to n-1 do

y[n-i]: =(d[n-I]+y[n-i+l])/c[n-i];

end ;

procedure kr( var xx,y :mas); ьтшлмлла ^Uscuiocd &bsol;gjqcuwl var x,h: real;!: integer; ' vv a,b,c,d,l,r,p,g,f: mas;

begin

h: =l/n; x: =0;

for i: =0 to n do begin

p[i]: =2*x;

g[i]: =x*x;

f[i]: =sin(x*x);

xx[i]: =x;

x: =x+h;

У[0]: =0;y[N]: =3;b[l]: =y[0]-2*h*h*f[l]/lCl];

cCl]: =a[l];d[l]: =b[l];

for i: =1 to n-1 do begin 1[i]: =2-h*p[i];

a[i]: =(4-2*h*h*g[i])/l[i];

r[i]: =(2+h*p[i])/l[i];

end;

for i: =2 to n-1 do begin c[i]: =a[i]-<r[i-l]/c[i-l]);

b[i]: =-2*h*h*f[i]/l[i];

d[i]: =b[i]+(d[i-l]/c[i-l]);

end;

for i: =1 to n-1 do

у [n-i]: =<d[n-i]+r[n-i]*y[n-i+l])/c[n-i];

end;

begin il: =detect;initgraph(il,j1,'' );


assign(ff,' b: reseda, dip' ); <2. rewrite(ff);

1: cirscr; settextstyle(0,0,2);

outtextxy(300,80,'МЕНЮ: ' );

outtextxy(135,150,'1.РЕШЕНИЕ ВАРИАЦИОННОЙ ЗАДАЧИ.');

outtextxy(135,200,'2. РЕШЕНИЕ КРАЕВОЙ ЗАДАЧИ.'):

outtextxy<135,250,'3. КОНЕЦ . ' );

outtextxy(145,350, 'ВЫБЕРИТЕ НУЖНЫЙ ПУНКТ МЕНЮ .');

Е: =READKEY; •

case e of ' Г: begin

cirscr;settextstyle(0,0,3);

outtextxy(100,40,'РЕШЕНИЕ ВАРИАЦИОННОЙ' );

outtextxy(250,80,'ЗАДАЧИ' );

settextstyle(0,0,2);

outtextxy(155,130,'Дана вариационная задача:');

outtextxy(145,200,' I(Y)= ( y+2cos(x)y+e y )dx');

settextstyle(0,0,4);outtextxy(230,190,'S');

settextstyle(0,0,2);

outtextxy(200,280,' y(l)=0 , у(3)=4 ');

settextstyle(0,0,2);

outtextxy(240,170,' Г );outtextxy(235,225,'3');

SETTEXTSTYLE(0,0,1);

outtextxy(329,190,'2');

settextstyle(0,0,2);outtextxy(315,180,',');

settextstyle(0,0,1);

outtextxy(440,190/ 2');

outtextxy(500,190,'-x');outtextxy(520,185,'2');

vap(xx,y); writein;

writeln(ff,' РЕШЕНИЕ ВАРИАЦИОННОЙ ЗАДАЧИ' )

writeln(ff);writeln(fr);i: =0;

while i<=n do begin

if i<=n then

writeln(ff, ' ' ,xx[i]: 1: 3,' &bsol; ',y[i]:l:3, ',xx[i+l]: 1: 3,' ',y[i+l]:1:3)

© 1 S6

writeln(ff,' ' ,xx[i]: 1: 3,' -,y[i]:l:3);

i: =i+2; end;

e: =readkey; goto 1; end;

'2': begin

cirscr; SETTEXTSTYLE(0,0,3);

OUTTEXTXY( 50, 80, '-РЕШЕНИЕ КРАЕВОЙ ЗАДАЧИ.');

settextstyle(0,0,2);

OUTTEXTXY(150,130,'Дана краевая задача: ');

OUTTEXTXY(145,200,'y+2xy+xy=sinx ' );

OUTTEXTXY(150,280,' y(0)=0 , у(1)=3 ');

OUTTEXTXY(152,180,' ,,' );

OUTTEXTXY(218,180,' ,' );settextstyle(0,0,1);

OUTTEXTXY(255,190,'2' );

outtextxy(350,190,'2');

kr(xx,y); writein;

writeln(ff,' РЕШЕНИЕ КРАЕВОЙ ЗАДАЧИ' );

writeln(ff);writeln(ff);i: =0;

while i<=n do begin

if i<=n then

writeln(ff,' ',xx[i]: 1: 3,' ',y[i]: 1: 3,

',xx[i+l]: 1: 3,' ' ,y[i+l]: 1: 3) else

writeln(ff,' ' ,xx[i]: 1: 3,' ',yCi]: 1: 3);

i: =i+2; end;

e: =readkey; goto 1; end;

.' 3': begin

cirscr;

settextstyle(0,0,2) ;

outtextxy(150,280,'нажмите на любую клавишу ') ;

E: =readkey;


closegraph ;

end;

end;

close(ff);

end.


program diplom; <5 const n=200;

type mas=array[0. . n]of real;

var a,b,c,d,f,y,p,xx,1,r,g: mas;

x,h,jl,yl,j2,y2: real;

i: integer;

ff: text; „ о procedure vap(var xx,y :mas); рвит^шло. Ьсир<лсцш^У<мо^ var x,h: real; i: integer; f,p, a,b, c,d: mas; ^Cc^c^cc begin h: =2/n; x: =0;

for i: =0 to n do begin

f[i]: = -1 ;

p[i]: = 0;

xx[i]: =x;

x: =x+h end;

y[0]:=0; y[157]:=l;

for i: =1 to 157 do

a[i]:=2+h*h*f[i];

b[l]:=y[0]-h*h*p[l];

b[156]: =y[157]-h*h*p[156];

for i: =2 to 157-2 do

b[i]: =-h*h*pCi];

c[l]:=a[l]; d[l]:=b[l];

for i: =2 to 157-1 do begin

c[i]: =a[i]-l/c[i-l];

d[i]: =b[i]+d[i-l]/c[i-l];

end;

y[156]: =d[156]/c[156];

for i: =2 to 156 do

y[157-i]: =(d[157-I] +y[157-i+l])/c[157-i];

end;

procedure kr(var xx,y :mas); р>влллели,<Л. ^сиг-С^Сл! ^wo^m.

var x,h: real;i: integer;a,p,g,f,r,1,b,c,d: mas; /</

begin

h: =2/n; x: =0;

for i: =0 to 100 do begin

P[i]:=0;

g[i]: =0;

fCi3: =x;

xx[i]: =x;

x: =x+h;

end;

У[0]: =0; y[100]: =1;

for i: =1 to 100 do begin

1[i]: =2-h*p[i];

a[i]: =(4-2*h*h*g[i])/l[i];

r[i]: =(2+h*p[i])/l[i];

end;

b[l]: =y[0]-2*h*h*f[l]/l[l];d[l]: =b[l];c[l]: =a[l];

for i: =2 to 99 do begin

- b[i]: =-2*h*h*f[i]/l[i];

c[i]: =a[i]-<r[i-l]/c[i-l]);

d[i]: =b[i]+(d[i-l]/c[i-l]);

end;

у[99]: =(d[99]+r[99]*y[100])/c[99];

for i: =2 to 99 do

yClOO-i]: =(d[100-i]+r[100-i]*y[100-i+l])/c[100-i];

end;

begin assign(ff,' b: res.dip');


rewrite(ff); writeln(ff); ^ vap(xx,y);

writeln(ff,' РЕШЕНИЕ ВАРИАЦИОННОЙ ЗАДАЧИ');

writeln(ff);

i: =0;jl: =0;

writeln(ff,' численное решение',

','аналитическое решение');

writeln(ff);

while <i<=157) and (jl<=1.57) do begin

yl:=sin(jl);

writeln(ff,' ',xx[i]: 1: 2,' ',y[i]:l:3,

',J1:1: 2,' ' ,yl: 1: 3);

i: =i+l;jl: =jl+0. 01; end;

I writeln(ff,' ' ,xx[157]: 1: 2,' ' ,у[157]:1: 3, ',J1:1: 2,' ' ,yl: 1: 3);

writeln(ff);

kr(xx,y);

writeln(ff);

writeln(ff,' РЕШЕНИЕ КРАЕВОЙ ЗАДАЧИ' );

writeln(ff);i: =0;j2: =0;

writeln(ff,' численное решение',

' /аналитическое решение' );

writeln(ff);

while (i<=100) and (j2<=l) do begin

y2: =j2*j2*j2/6+(5>Kj2/6);

writeln(ff,' ',xx[i]:1: 2_,' ' ,y[i]:1: 3, ' ,j2: 1: 2,' ',у2: 1: 3);

i: =i+l;j2: =j2+0. 01; end;

writeln(ff,' ',хх[100]: 1: 2,' ',у[100]:1: 3, ' ,з2: 1: 2,' ' ,у2: 1: 3);

close(ff);

end.