Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Samoylova / vika_13a

.docx
Скачиваний:
20
Добавлен:
22.03.2015
Размер:
101.51 Кб
Скачать

To get started, select MATLAB Help or Demos from the Help menu.

>> clear all

format long

disp('Решаем пример 13a')

syms x y Dy D2y a1 a2 % описали переменные

Решаем пример 13a

>> F=2*Dy^2+2*y^2+y*cos(x)-5*x; % подинтегральная функция

>> x1=0; y1=2; x2=2; y2=2;

>> fprintf('Подынтегральная функция: F=%s\n',char(F))

fprintf('Граничные условия: y(%d)=%d; y(%d)=%d\n',x1,y1,x2,y2)

dFdy = diff(F,y);

dFdy1 = diff(F,Dy);

d_dFdy1_dx = diff(dFdy1,x);

d_dFdy1_dy = diff(dFdy1,y);

d_dFdy1_dy1 = diff(dFdy1,Dy); % d(dF/dy')/dy'

dFy1dx = d_dFdy1_dx + d_dFdy1_dy*Dy + d_dFdy1_dy1*D2y;

Euler = simple(dFdy-dFy1dx);

deqEuler = [ char(Euler) '=0' ]; % составили уравнение

Sol = dsolve(deqEuler,'x'); % решаем уравнение Эйлера

if length(Sol)~=1 %решений нет или более одного

error('Нет решений или более одного решения!');

end

SolLeft = subs(Sol,x,sym(x1));

SolRight = subs(Sol,x,sym(x2));

EqLeft = [char(SolLeft) '=' char(sym(y1))];

EqRight = [char(SolRight) '=' char(sym(y2))];

Con = solve(EqLeft,EqRight); % решаем систему

C1 = Con.C1;

C2 = Con.C2;

Sol1a = vpa(eval(Sol),14);

xpl = linspace(x1,x2);

y1a = subs(Sol1a,x,xpl);

Подынтегральная функция: F=2*Dy^2+2*y^2+y*cos(x)-5*x

Граничные условия: y(0)=2; y(2)=2

>> x1s = sym(x1);

x2s = sym(x2);

y1s = sym(y1);

y2s = sym(y2);

fi0 = y1s+(y2s-y1s)*(x-x1s)/(x2s-x1s)

fi1 = sin(pi*(x-x1s)/(x2s-x1s))

fi2 = sin(2*pi*(x-x1s)/(x2s-x1s))

yritz = fi0+a1*fi1+a2*fi2

dyritzdx = diff(yritz,x);

fi0 =

2

fi1 =

sin(1/2*pi*x)

fi2 =

sin(pi*x)

yritz =

2+a1*sin(1/2*pi*x)+a2*sin(pi*x)

>> Fritz = simple(subs(F,{y,Dy},{yritz,dyritzdx}));

Jritz = simple(int(Fritz,x,x1s,x2s))

Jritz =

(48*pi+256*a1-60*pi^3-16*a1^2*pi^3-a1^2*pi^5+a1^2*pi^7-4*a2^2*pi^3-16*a2^2*pi^5+4*a2^2*pi^7+12*pi^5+16*a1^2*pi+16*a2^2*pi+68*a1*pi^4-8*a2*pi^2+2*a2*pi^4-324*a1*pi^2+8*a2*cos(2)*pi^2-2*a2*cos(2)*pi^4-4*a1*cos(2)*pi^2+4*a1*cos(2)*pi^4-20*sin(2)*pi^3+4*sin(2)*pi^5+16*sin(2)*pi)/(8*pi-10*pi^3+2*pi^5)

>> eq1 = diff(Jritz,a1);

eq2 = diff(Jritz,a2);

eq1 = [char(eq1),'=0'];

eq2 = [char(eq2),'=0'];

S = solve(eq1,eq2,a1,a2); % решаем относительно a1, a2

a1r = eval(S.a1)

a2r = eval(S.a2)

a1r =

-0.77946770189341

a2r =

-0.01153666228564

>> yr=subs(subs(yritz,{a1,a2},{a1r,a2r}),x,xpl);

plot(xpl,y1a,'--b',xpl,yr,'-r')

title('\bfExample 13a')

xlabel('x')

ylabel('y(x)')

Соседние файлы в папке Samoylova