Автор работы: Пользователь скрыл имя, 29 Мая 2013 в 13:19, курсовая работа
В современной периодической научной литературе отмечаются попытки описания движений материальных объектов с помощью вихревого уравнения движения.
Под вихревыми уравнениями движения обычно подразумеваются уравнения гидродинамического типа, ― либо собственно уравнение Эйлера для идеальной жидкости, либо его обобщение в форме уравнения Ламба.
Отмеченные попытки представляют интерес в основном потому, что они составляют определенную альтернативу уравнению движения Ньютона применительно к описанию движения точечных объектов, всегда имевшему тут монополию.
Введение 2
1 Цель работы 3
2 Задание 4
Список литературы 10
Приложение А. Листинг программы 11
Содержание
Введение
В современной периодической научной литературе отмечаются попытки описания движений материальных объектов с помощью вихревого уравнения движения.
Под вихревыми уравнениями движения обычно подразумеваются уравнения гидродинамического типа, ― либо собственно уравнение Эйлера для идеальной жидкости, либо его обобщение в форме уравнения Ламба.
Отмеченные попытки представляют интерес в основном потому, что они составляют определенную альтернативу уравнению движения Ньютона применительно к описанию движения точечных объектов, всегда имевшему тут монополию.
Главная особенность "вихревого описания" применительно к точечным объектам состоит в том, что в результате такого описания возникают не отдельные, как это характерно для ньютоновского подхода, траектории, а сразу бесконечные и всюду плотные семейства виртуальных (т.е. всех возможных при указанных в условиях задачи определенных ограничениях) траекторий материальной точки.
Это становится возможным, однако, благодаря введению некоторых вполне определенных и не очень обременительных ограничений на классы рассматриваемых движений. А именно, рассматриваются только такие плоские движения, геометрическая картина которых при бесконечном времени их экспозиции может быть предложена с помощью конформных преобразований на комплексной плоскости, отображающей плоскость реальных движений точечного объекта на вещественной координатной плоскости.
В связи с этим встает задача математического моделирования подобных движений с использованием современных компьютерных технологий.
Цель настоящей курсовой работы состоит в демонстрации этих возможностей и применению их к решению задачи "вихревого описания" движений точечного объекта с нулевым гамильтонианом в поле внешних сил с потенциалом
(1)
где - расстояние от силового центра (начала координат) до материальной точки, показатель степени α (число b) указывается преподавателем в задании. Дополнительным ограничением на движения точечного объекта является то, что полная энергия объекта в любой момент времени и в любой точке на траектории равна нулю (нулевой гамильтониан), что указывает на консервативность рассматриваемой динамической системы.
Целью выполнения данной курсовой работы является ознакомление с возможностями системы MatLab. Задачей данной работы является расчет и отображение траектории движения материальной точки в поле сил с симметризованным потенциалом, прототипом для которого является потенциал вида
,
где rn – расстояние от n-ого полюса с координатой an до материальной точки, траекторию движения которой требуется построить;
bn – заряд в n-ом полюсе системы.
Задание 18.3.2.-1.+ -
N=3 – число полюсов на окружности
m=2 – величина «заряда» каждого полюса на окружности
S0= -1 – величина заряда b0 в начале координат
S = {+ -} – сигнатура чередования знаков заряда полюсов на окружности, причем принимается, что у заряда с номером 1 знак берется положительный.
Требуется рассчитать траекторию движения материальной точки в поле сил с симметризованным потенциалом, прототипом для которого является потенциал вида
,
где rn – расстояние от n-ого полюса с координатой an до материальной точки, траекторию движения которой требуется построить;
bn – «заряд» в n-ом полюсе системы.
Нужно использовать следующее «изображение» для симметризованного потенциала:
.
Выражение для самого симметризованного потенциала получается в результате перемножения функции изображения с комплексно сопряженной функцией изображения.
Дифференциальное уравнение для определения координатной функции (КФ) w имеет вид:
,
где – изображение потенциала, ассоциированного с n-ым «зарядом»,
p – численный параметр (в том числе и могущий принимать комплексные значения), который, тем не менее, как правило, принимается равным единице.
Задание 18.3.2.-1. + -
По заданию имеется три заряда:
Осуществив подстановку, приходим к дифференциальному уравнению:
.
После интегрирования имеем:
Преобразуя данное выражение в полиномиальный вид, получим:
Определим точки ветвления у w:
Получим эти значения общим численным методом.
Имеем
Результант двух полиномов (1) и (3) записывается построчно следующим образом (по синтаксическим правилам MatLab):
>> syms v
>> R=[1 -2-2*exp((2*pi*i)/3)+v 1+4*exp((2*pi*i)/3)+exp((4*pi*
0 1 -2-2*exp((2*pi*i)/3)+v 1+4*exp((2*pi*i)/3)+exp((4*pi*
0 0 1 -2-2*exp((2*pi*i)/3)+v 1+4*exp((2*pi*i)/3)+exp((4*pi*
4 -6-6*exp((2*pi*i)/3)+3*v 2+8*exp((2*pi*i)/3)+2*exp((4*
0 4 -6-6*exp((2*pi*i)/3)+3*v 2+8*exp((2*pi*i)/3)+2*exp((4*
0 0 4 -6-6*exp((2*pi*i)/3)+3*v 2+8*exp((2*pi*i)/3)+2*exp((4*
0 0 0 4 -6-6*exp((2*pi*i)/3)+3*v 2+8*exp((2*pi*i)/3)+2*exp((4*
>> D=det(R)
D =
(18 + 18*3^(1/2)*i)*v^5 + (855/2 - (855*3^(1/2)*i)/2)*v^4 - 4968*v^3 + (- 648 - 648*3^(1/2)*i)*v^2
>> format long
>> P=[18+18*3^(1/2)*i 855/2-(855*3^(1/2)*i)/2 -4968 -648-648*3^(1/2)*I 0 0];
>> a=roots(P)
a =
0
0
6.0000 +10.3923i
6.0000 +10.3923i
-0.1250 - 0.2165i
Находим точки ветвления:
>>P1=[1 -2-2*exp((2*pi*i)/3)+a(1,1) 1+4*exp((2*pi*i)/3)+exp((4*pi*
>> w1=roots(P1)
w1 =
-2.3955 - 4.1504i
-2.3957 - 4.1484i
-0.1044 - 0.1807i
-0.1044 - 0.1808i
>>P2=[1 -2-2*exp((2*pi*i)/3)+a(2,1) 1+4*exp((2*pi*i)/3)+exp((4*pi*
>> w2=roots(P2)
w2 =
-2.3966 - 4.1495i
-2.3947 - 4.1493i
-0.1043 - 0.1807i
-0.1044 - 0.1808i
>>P3=[1 -2-2*exp((2*pi*i)/3)+a(3,1) 1+4*exp((2*pi*i)/3)+exp((4*pi*
>> w3=roots(P3)
w3 =
-0.7967 + 0.6043i
0.9217 - 0.3878i
0.5000 + 0.8660i
0.5000 + 0.8660i
>>P4=[1 -2-2*exp((2*pi*i)/3)+a(4,1) 1+4*exp((2*pi*i)/3)+exp((4*pi*
>> w1=roots(P1)
w4 =
-0.5000 + 0.8660i
-0.5000 + 0.8660i
1.0000 + 0.0000i
1.0000 - 0.0000i
>>P5=[1 -2-2*exp((2*pi*i)/3)+a(5,1) 1+4*exp((2*pi*i)/3)+exp((4*pi*
>> w2=roots(P2)
w5 =
-0.5000 + 0.8660i
-0.5000 + 0.8660i
1.0000 + 0.0000i
1.0000 - 0.0000i
Точки ветвления:
w1= 0.5000+0.8660i
w2=-0.1043-0.1807i
w3=-2.3955-4.1503i
w4=-0.5000+0.8660i
w5= 1.000
Находим из значений v точек ветвления значения особых координатных линий u1 и u2.
.
Находим критическое значение для параметра u1:
u1=log(12.01263912727612)= 2.4849
u1=log(0.24961854095486)= -1.3863
u1= log(0) = -Inf
Соответственно, находим u2:
u2=π/6+-2πk, k=0,1,2…
u2=-π/6+-2πk, k=0,1,2…
u2=0+-2πk, k=0,1,2…
Для визуализации рассмотренных теоретических положений был написан скрипт в MatLab для построения координатных линий.
Графики семейств координатных линий:
Семейство координатных линий u1=const
Для u2=const
Для u1=const, u2=const
Список литературы
Приложение А. Листинг программы
script
a=1;
e = pi/16;
dis=1;
axis equal
axis ([-4 4 -4 4]);
hold on
grid on
xlabel('Re(w)')
ylabel('Im(w)')
oo=1;
%% Построение координатных линий u1=const на заданном отрезке u2
for u_1=[-3 -2 -1.3863 -1 0 1 2 2.4849 3 4]
u_2=-2*pi:pi/200:0;
z=u_2+i*u_1;
PP=[1 2 2*exp((4*pi*i)/3) 3*exp((2*pi*i)/3) exp((4*pi*i)/3) 0];
xx=[(PP(1,1)*(exp(u_1)*(cos(u_
for u=1:length(u_2)
w(u,:)=roots(xx(u,:));
end
w;
if ((u_1>=-1.3863 & u_1<=2.4849)) | (u_1==1.3863)
ww=[w(:,1); w(:,2); w(:,3); w(:,4)];
b=length(ww);
l=1;
d=1;
q(l,1)=ww(1);
oo1=ww(1:l-1,1);
oo2=ww(l+1:b,1);
oo=[oo1; oo2];
for k=1:b-2
qq=q(k,1);
Q=qq-oo;
r=1;
[MIN,l]=min(abs(Q));
p=l-r;
if p~=0
kk(d)=k;
d=d+1;
end
q(k+1,1)=oo(l);
oo1=oo(1:(l-1),1);
oo2=oo((1+l):(b-k),1);
oo=[oo1; oo2];
end
q=[q; oo];
qq=[q(2:length(q)); 0];
dif=abs(qq-q);
[MAX, pp]=max(dif);
yy1=q(1:pp);
yy2=q(pp+1:length(q));
plotArrow(real(yy1),imag(yy1),
plotArrow(real(yy2),imag(yy2),
end
if (u_1<1.3863) | (u_1<-1.3863 |u_1>2.4849)
ww=[w(:,1); w(:,2); w(:,3); w(:,4)];
b=length(ww);
l=1;
d=1;
q(l,1)=ww(1);
oo1=ww(1:l-1,1);
oo2=ww(l+1:b,1);
oo=[oo1; oo2];
for k=1:b-1
qq=q(k,1);
Q=qq-oo;
r=1;
[MIN,l]=min(abs(Q));
p=l-r;
if p~=0
kk(d)=k;
d=d+1;
end
q(k+1,1)=oo(l);
oo1=oo(1:(l-1),1);
oo2=oo((1+l):(b-k),1);
oo=[oo1; oo2];
end
q=[q];
qq=[q(2:length(q)); 0];
dif=abs(qq-q);
[MAX, pp]=max(dif);
yy1=q(1:pp);
yy2=q(pp+1:length(q));
qqq=[yy2(2:length(yy2)); 0];
dif2=abs(qqq-yy2);
[MAX, pp]=max(dif2);
yyy2=yy2(1:pp);
yyy3=yy2(pp+1:length(yy2));
plotArrow(real(yy1),imag(yy1),
plotArrow(real(yyy2),imag(
plotArrow(real(yyy3),imag(
end
clear all
end
for u_2=-pi:pi/36:pi;
u_1=-3:0.02:3;
z=u_2+i*u_1;
PP=[1 2 2*exp((4*pi*i)/3) 3*exp((2*pi*i)/3) exp((4*pi*i)/3) 0];
xx=[(PP(1,1)*(ones(1,length(u_
(PP(1,3)*(exp(u_1)*(cos(u_2)-
(PP(1,4)*(exp(u_1)*(cos(u_2)-
(PP(1,2)*(exp(u_1)*(cos(u_2)-
(ones(1,length(u_1))*PP(1,5))'
for u=1:length(u_1)
w(u,:)=roots(xx(u,:));
end
w;
ww=[w(:,1); w(:,2); w(:,3); w(:,4)];
b=length(ww);
l=1;
d=1;
q(l,1)=ww(1);
oo1=ww(1:l-1,1);
oo2=ww(l+1:b,1);
oo=[oo1; oo2];
for k=1:b-1
qq=q(k,1);
Q=qq-oo;
r=1;
[MIN,l]=min(abs(Q));
p=l-r;
if p~=0
kk(d)=k;
d=d+1;
end
q(k+1,1)=oo(l);
oo1=oo(1:(l-1),1);
oo2=oo((1+l):(b-k),1);
oo=[oo1; oo2];
end
q=[q];
qq=[q(2:length(q))];
dif=abs(qq-q(1:length(q)-1));
[MAX, pp]=max(dif);
yy1=q(1:pp);
yy2=q(pp+1:length(q));
% plot(real(yy1),imag(yy1),'K','
% plot(real(yy2),imag(yy2),'K','
yy2;
qqq=[yy2(2:length(yy2))];
dif2=abs(qqq-yy2(1:length(yy2)
[MAX, pp]=max(dif2)
yyy2=yy2(1:pp);
yyy3=yy2(pp+1:length(yy2));
plotArrow(real(yy1),imag(yy1),
plotArrow(real(yyy2),imag(
plotArrow(real(yyy3),imag(
end
function plotArrow(varargin)
%значения параметров по умолчанию
arrowLength = 0.1; %длина стрелки
arrowAngle = 0.5; %угол наклона
arrowPosition = 0.5; %позиция стрелки
arrowLineWidth = 2; %толщина линий, которыми рисуется стрелка
%первые три ячейки параметров - X,Y,color
X = varargin{1}; %массив X координат
Y = varargin{2}; %массив Y координат
color = varargin{3}; %цвет
%остальные ячейки представляют собой пару
%i-ая название параметра
%(i+1)-ая значение параметра
idj = 4; %заполнение ячеек для функции plot начинается с 4-ой
for id = 4: 2: length(varargin) %по всем ячейкам от 4-ой до последней
if strcmp(varargin{id},'
%если имя параметра 'ArrowLength' значит в следующей
%ячейке хранится длина стрелки
arrowLength = varargin{id + 1};
elseif strcmp(varargin{id},'
%если имя параметра 'ArrowAngle', значит в следующей
%ячейке хранится угол наклона стрелки
arrowAngle = varargin{id + 1};
elseif strcmp(varargin{id},'
%если имя параметра 'ArrowPosition', значит в следующей
%ячейке хранится позиция стрелки на координатной линии
arrowPosition = varargin{id + 1};
elseif strcmp(varargin{id},'
%если имя параметра 'ArrowLineWidth', значит в следующей
%ячейке хранится толщина линий, которыми рисуется стрелка
arrowLineWidth = varargin{id + 1};
else
%если этот параметр не относится к свойствам стрелки, то передаем его %в список параметров функции plot
attr{idj} = varargin{id}; %имя параметра
attr{idj + 1} = varargin{id + 1}; %значение параметра
idj = idj + 2;
end
end
%первые
три ячейки соответствуют
attr{1} = varargin{1}; %массив X координат
attr{2} = varargin{2}; %массив Y уоординат
attr{3} = varargin{3}; %цвет
%рисуем график
plot(attr{1: idj - 1});
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Далее
идет код для отрисовки
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sizeX = length(X); %количество точек графика
graphLengthMax = 0; %длина графика
graphLengthList = []; %список длин отрезков графика
%Подсчет общей длины
for (id = 1: 1: sizeX - 1)
vectorX = X(id + 1) - X(id);
vectorY = (Y(id + 1) - Y(id));
lengthLine = sqrt(vectorX * vectorX + vectorY * vectorY);
%добавляем к общей длине
graphLengthMax = graphLengthMax + lengthLine;
%добавляем длину отрезка в список длин
graphLengthList = cat(2, graphLengthList, lengthLine);
end
%Поиск позиции для стрелки
s = 0; %пройденный путь
saveId = -1; %
for (id = 1: 1: sizeX - 1)
s = s + graphLengthList(id);
%Когда требуемая часть пути минус половина длины стрелки пройдена,
%сохраняем индекс точки. Используется для определения направления
%стрелки. Так как, если определять направление стрелки по 2 близстоящим
%точкам, то при малых длинах отрезков можем получить графически