Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
©Иглин С.П., iglin@kpi.kharkov.ua
Рассмотрим задачу отыскания экстремума функционала, зависящего от нескольких функций одной переменной и их первых производных:
. (2.)
Экстремаль функционала должна удовлетворять в общем случае 2n граничным условиям:
(2.)
Как и ранее (см. глава 1), необходимое условием экстремума такого функционала равенство нулю его вариации, вычисленной на экстремали {y10(x),y20(x),…,yn0(x)}. Так как функционал достигает экстремума на множестве варьируемых функций с закреплёнными концами, то он тем более будет достигать экстремума на более узком классе функций: когда варьируется только одна из них, а остальные зафиксированы. Значит, каждая из функций yi(x) должна удовлетворять уравнению Эйлера (1.5). Таким образом, для нахождения экстремалей мы получаем систему n дифференциальных уравнений Эйлера
(2.)
дополненную 2n граничными условиями (2.2).
Данную вариационную задачу при n=2 можно интерпретировать геометрически. Обозначим функции через y(x) и z(x). Тогда задача сводится к отысканию линии, проходящей через заданные две точки M1(x1,y1,z1) и M2(x2,y2,z2), и доставляющей экстремум функционалу (2.1).
Найти экстремаль функционала, зависящего от двух функций, при заданных граничных условиях, и построить график экстремали в виде двух функций y(x), z(x) и в виде пространственной кривой.
(2.)
Применим систему MATLAB для решения данной задачи. При написании будем использовать фрагменты программы решения примера 1a.
Вначале опишем необходимые данные и введём их.
clear all
format long
disp('Решаем пример 2')
syms x y z Dy D2y Dz D2z % описали переменные
F=Dy^2+Dz^2+2*y*z; % подынтегральная функция
x1=-2;
y1=1;
z1=0;
x2=2;
y2=0;
z2=2;
fprintf('Подынтегральная функция: F=%s\n',char(F))
fprintf('Граничные условия слева: y(%d)=%d; z(%d)=%d\n',x1,y1,x1,z1)
fprintf('Граничные условия справа: y(%d)=%d; z(%d)=%d\n',x2,y2,x2,z2)
Решаем пример 2
Подынтегральная функция: F=Dy^2+Dz^2+2*y*z
Граничные условия слева: y(-2)=1; z(-2)=0
Граничные условия справа: y(2)=0; z(2)=2
Находим частные производные Fy, Fz, Fy и Fz, и вычисляем полные производные dFydx и dFzdx по правилу (1.7).
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_dFdy1_dz = diff(dFdy1,z);
d_dFdy1_dz1 = diff(dFdy1,Dz);
dFy1dx = d_dFdy1_dx + d_dFdy1_dy*Dy + d_dFdy1_dy1*D2y + d_dFdy1_dz*Dz + d_dFdy1_dz1*D2z
dFdz=diff(F,z)
dFdz1 = diff(F,Dz);
d_dFdz1_dx = diff(dFdz1,x);
d_dFdz1_dy = diff(dFdz1,y);
d_dFdz1_dy1 = diff(dFdz1,Dy);
d_dFdz1_dz = diff(dFdz1,z);
d_dFdz1_dz1 = diff(dFdz1,Dz);
dFz1dx = d_dFdz1_dx + d_dFdz1_dy*Dy + d_dFdz1_dy1*D2y + d_dFdz1_dz*Dz + d_dFdz1_dz1*D2z
dFdy =
2*z
dFy1dx =
2*D2y
dFdz =
2*y
dFz1dx =
2*D2z
Из этих величин формируем систему уравнений Эйлера
EulerY = simple(dFdy-dFy1dx)
EulerZ = simple(dFdz-dFz1dx)
deqEulerY = [char(EulerY) '=0']; % уравнение Y
deqEulerZ = [char(EulerZ) '=0']; % уравнение Z
fprintf('Система уравнений Эйлера:\n%s\n%s\n',deqEulerY,deqEulerZ)
EulerY =
2*z-2*D2y
EulerZ =
2*y-2*D2z
Система уравнений Эйлера:
2*z-2*D2y=0
2*y-2*D2z=0
Решаем систему, проверяем существование и единственность решения, печатаем аналитические решения.
Sol = dsolve(deqEulerY,deqEulerZ,'x'); % решаем
if length(Sol)~=1 % решений нет или более одного
error('Нет решений или более одного решения!');
end
SolY = Sol.y
SolZ = Sol.z
SolY =
1/4*C1*exp(-x)+1/4*C1*exp(x)+1/2*C1*cos(x)-1/4*C2*exp(-x)+1/4*C2*exp(x)+1/2*C2*sin(x)+1/4*C3*exp(-x)+1/4*C3*exp(x)-1/2*C3*cos(x)-1/2*C4*sin(x)+1/4*C4*exp(x)-1/4*C4*exp(-x)
SolZ =
1/4*C1*exp(-x)+1/4*C1*exp(x)-1/2*C1*cos(x)-1/2*C2*sin(x)+1/4*C2*exp(x)-1/4*C2*exp(-x)+1/4*C3*exp(-x)+1/4*C3*exp(x)+1/2*C3*cos(x)-1/4*C4*exp(-x)+1/4*C4*exp(x)+1/2*C4*sin(x)
Подставляем в полученное решение граничные условия, формируем систему уравнений и находим из её решения произвольные постоянные. Найденные константы подставляем в решение. Для ускорения решения системы уравнений все константы вычисляем перед решением системы с точностью до 14 знаков.
SolLeftY = subs(SolY,x,sym(x1)); % x1 в y
SolLeftZ = subs(SolZ,x,sym(x1)); % x1 в z
SolRightY = subs(SolY,x,sym(x2)); % x2 в y
SolRightZ = subs(SolZ,x,sym(x2)); % x2 в z
EqLeftY = [char(vpa(SolLeftY,14)) '=' char(sym(y1))]
EqLeftZ = [char(vpa(SolLeftZ,14)) '=' char(sym(z1))]
EqRightY = [char(vpa(SolRightY,14)) '=' char(sym(y2))]
EqRightZ = [char(vpa(SolRightZ,14)) '=' char(sym(z2))]
Con = solve(EqLeftY,EqLeftZ,EqRightY,EqRightZ);
C1 = Con.C1
C2 = Con.C2
C3 = Con.C3
C4 = Con.C4
Sol2Y=vpa(eval(Sol.y),14);
Sol2Z=vpa(eval(Sol.z),14);
fprintf('Уравнения экстремали:\ny(x)=%s\nz(x)=%s\n',char(Sol2Y),char(Sol2Z))
EqLeftY =
1.6730244272683*C1-2.2680789173363*C2+2.0891712638155*C3-1.3587814905107*C4=1
EqLeftZ =
2.0891712638155*C1-1.3587814905107*C2+1.6730244272683*C3-2.2680789173363*C4=0
EqRightY =
1.6730244272683*C1+2.2680789173364*C2+2.0891712638154*C3+1.3587814905107*C4=0
EqRightZ =
2.0891712638154*C1+1.3587814905107*C2+1.6730244272683*C3+2.2680789173364*C4=2
C1 =
.80010116205603772792330153473626
C2 =
-.75588248652807617767056096145498
C3 =
-.40139781880493258439008582742141
C4 =
.89374276891397209091577934075248
Уравнения экстремали:
y(x)=.65210765216302e-1*exp(-1.*x)+.13414090640925*exp(x)+.60074949043049*cos(x)-.82481262772102*sin(x)
z(x)=.65210765216302e-1*exp(-1.*x)+.13414090640925*exp(x)-.60074949043049*cos(x)+.82481262772102*sin(x)
Вычисляем значения функций. Рисуем графики функций: y(x) сплошной красной линией и z(x) пунктирной синей линией на одном рисунке.
xpl = linspace(x1,x2); % массив абсцисс
y2a = subs(Sol2Y,x,xpl); % вычисляем ординаты
z2a = subs(Sol2Z,x,xpl); % вычисляем ординаты
plot ( xpl,y2a,'-r', xpl,z2a,'--b' ) % рисуем график
title('\bfExample 2') % заголовок
xlabel('x') % метка оси OX
ylabel('y(x), z(x)') % метка оси OY
Рис. 2.. Решение примера 2 в виде двух линий
На другом рисунке рисуем трёхмерный график полученной линии. Выбираем точку просмотра. Показываем сетку и контур.
plot3(xpl,y2a,z2a,'-r') % Рисуем 3D график
title('\bfExample 2') % заголовок
xlabel('x') % метка оси OX
ylabel('y(x)') % метка оси OY
zlabel('z(x)') % метка оси OZ
view(205,30) % точка просмотра
grid on % показали сетку
box on % показали внешний контур
Рис. 2.. Решение примера 2 в виде пространственной линии
Ответ. Система уравнений Эйлера после сокращения на 2 имеет вид
(2.)
После подстановки произвольных постоянных уравнения экстремали
(2.)
На рис.2.1 показаны двумерные графики линий y(x) (сплошная красная линия) и z(x) (пунктирная синяя), а на рис.2.2 трёхмерный график пространственной кривой.
Для своего варианта функционала найти экстремаль и построить её график.
Вариант 1.
Вариант 2.
Вариант 3.
Вариант 4.
Вариант 5.
Вариант 6.
Вариант 7.
Вариант 8.
Вариант 9.
Вариант 10.
Вариант 11.
Вариант 12.
Вариант 13.
Вариант 14.
Вариант 15.
Вариант 16.
Вариант 17.
Вариант 18.
Вариант 19.
Вариант 20.
Вариант 21.
Вариант 22.
Вариант 23.
Вариант 24.
Вариант 25.
Вариант 26.
Вариант 27.
Вариант 28.
Вариант 29.
Вариант 30.