Движение заряженных частиц
Построение математической модели движения заряженных частиц, реализация на алгоритмическом языке с помощью ЭВМ. Описание предметной области. Имитация взаимодействия двух разноименно заряженных частиц. Результаты работы программы, руководство пользователя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.02.2015 |
Размер файла | 824,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовая работа
по дисциплине "Моделирование систем"
тема: Движение заряженных частиц
Содержание
- 1. Введение
- 2. Постановка задачи
- 3. Обозначения и сокращения
- 4. Моделирование
- 4.1 Формализация задач моделирования
- 4.2 Описание предметной области
- 4.2.1 Закон сохранения электрического заряда
- 4.2.2 Закон Кулона
- 4.2.3 Электростатическое поле. Напряжённость электростатического поля
- 4.2.4 Принцип суперпозиции электростатических полей
- 4.3 Построение математической модели
- 5. Реализация модели
- 5.1 Алгоритмы
- 5.1.1 Алгоритм вычисления положения тела
- 5.1.2 Алгоритм функции вычисления скоростей и координат
- 5.2 Руководство пользователя
- 5.3 Пример моделирования движения заряженной частицы.
- 5.4 Результаты работы программы
- Заключение
- Список литературы
- Приложение А
1. Введение
Областью исследования данной работы является движение двух разноименных заряженных частиц. В основу математической модели были положены законы Кулона и второй закон Ньютона, которые имеют вид соответственно. Полученная математическая модель имеет вид системы из четырех дифференциальных уравнения определяющих положение исследуемого объекта в пространстве-времени на заданном промежутке времени исходя из начальных условий моделирования. Для ее реализации используется ЭВМ, с помощью численных методов решения систем дифференциальных уравнения.
2. Постановка задачи
Цель работы
Построение математической модели движения заряженных частиц, реализация ее на алгоритмическом языке при помощи ЭВМ и имитация взаимодействия двух разноименно заряженных частиц.
Имеется неподвижная заряженная частица с зарядом Q и экран. В точке А экрана находится мишень. При каких соотношениях величины начальной скорости V0 движущейся частицы (заряд q) и угла прицеливания б она попадет в мишень?
Расстояния обозначены на рисунке. Заряды частиц - разных знаков.
Рис 1. Рисунок к заданию
Методология и методы проведения работы
Для проведения данной работы было выбран метод математического моделирования. Для реализации и данной модели и проведение эксперимента было выбрано компьютерное моделирование. Этапы моделирования представлены на рисунке 2.
математическая модель движение частица
Рис 2. Этапы моделирования
3. Обозначения и сокращения
F |
Кулоновская сила |
|
Q |
Неподвижная частица |
|
Q0 |
Пробный точечный заряд |
|
E |
Напряжённость поля |
|
е |
Заряд электрона |
|
me |
Масса электрона |
|
mp |
Масса протона |
4. Моделирование
4.1 Формализация задач моделирования
Главной задачей курсовой работы является моделирование движения заряженной частицы q в электрическом поле другой неподвижной заряженной частицы Q. Необходимо рассчитать соотношения величины начальной скорости V0 движущейся частицы q и угла прицеливания б, чтобы она попала в мишень. Так же необходимо учитывать, что заряды Q и q разных знаков. Разработанная модель должна отображать траекторию движения частицы q в электрическом поле, а также содержать данные о положении частицы в поле в данный момент времени.
4.2 Описание предметной области
4.2.1 Закон сохранения электрического заряда
Еще в глубокой древности было известно, что янтарь, потертый о шерсть, притягивает легкие предметы. Английский врач Джильберт назвал эти тела наэлектризованными. Сейчас мы говорим, что тела при этом приобретают электрические заряды. Несмотря на огромное разнообразие веществ в природе, существует только два типа электрических зарядов: заряды, подобные возникающим на стекле, потертом о кожу (их назвали положительными), и заряды, подобные возникающим на эбоните, потертом о мех (их назвали отрицательными); одноименные заряды друг от друга отталкиваются, разноименные - притягиваются.
Опытным путем (1910-1914) американский физик Р. Милликен показал, что электрический заряд дискретен, т.е. заряд любого тела составляет целое кратное от элементарного электрического заряда е (е = 1,6*10-12 Кл). Электрон (me = 9,11*10-31 кг) и протон (mp = 1,67*10-27 кг) являются соответственно носителями элементарных отрицательного и положительного зарядов.
Все тела в природе способны электризоваться, т.е. приобретать электрический заряд. Электризация тел может осуществляться различными способами: соприкосновением (трением), электростатической индукцией и т.д. Всякий процесс заряжения сводится к разделению зарядов, при котором на одном из тел (или части тела) появляется избыток положительного заряда, а на другом (или другой части тела) - избыток отрицательного заряда. Общее количество зарядов обоих знаков, содержащихся в телах, не изменяется: эти заряды только перераспределяются между телами.
Из обобщения опытных данных был установлен фундаментальный закон природы, экспериментально подтвержденный в 1843 г. Английским физиком М. Фарадеем - закон сохранения заряда: алгебраическая сумма электрических зарядов любой замкнутой системы (системы, не обменивающиеся зарядами с внешними телами) остается неизменной, какие бы процессы ни происходили внутри этой системы.
Электрический заряд - величина релятивистки инвариантная, т.е. не зависит от системы отсчета, а значит, не зависит от того, движется этот заряд или покоится.
Единица электрического заряда (производная единица, так как определяется через единицу силы тока) - Кулон (Кл) - электрический заряд, проходящий через поперечное сечение проводника при силе тока 1 А за время 1 с.
4.2.2 Закон Кулона
Закон взаимодействия неподвижных точечных электрических зарядов установлен в 1785 г.Ш. Кулоном с помощью крутильных весов, подобных тем, которые использовались Г. Кавендишем для определения гравитационной постоянной.
Точечным называется заряд, сосредоточенный на теле, линейные размеры которого пренебрежимо малы по сравнению с расстоянием до других заряженных тел, с которыми он взаимодействует. Понятие точечного заряда, как и материальной точки, является физической абстракцией.
Закон Кулона: сила взаимодействия F между двумя неподвижными точечными зарядами, находящимися в вакууме, пропорциональна зарядам Q1 и Q2 и обратно пропорциональна квадрату расстояния между ними:
(1)
где k - коэффициент пропорциональности, зависящий от выбора системы единиц.
Сила F направлена по прямой, соединяющей взаимодействующие заряды, т.е. является центральной, и соответствует притяжению (F<0) в случае разноимённых зарядов и отталкиванию (F>0) в случае одноимённых зарядов. Эта сила называется кулоновской силой. В векторной форме закон Кулона имеет вид:
(2)
где
F12 - сила, действующая на заряд Q1 со стороны заряда Q2, r12 - радиус-вектор, соединяющий заряд Q2 с зарядом Q1, r = | r12|. На заряд Q2 со стороны заряда Q1 действует сила F21 = - F12.
В СИ коэффициент пропорциональности равен
k = 1/ (4 * р * е0)
Тогда закон Кулона запишется в окончательном виде:
(3)
Величина е0 называется электрической постоянной; она относится к числу фундаментальных физических постоянных и равна
е0 = 0,85*10-12 [КлІ/ (H*мІ)] = 0,85*10-12 [Ф/м]
где фарад (Ф) - единица электрической ёмкости
4.2.3 Электростатическое поле. Напряжённость электростатического поля
Если в пространство, окружающее электрический заряд, внести другой заряд, то на него будет действовать кулоновская сила; значит, в пространстве, окружающем электрические заряды, существует силовой поле. В данном случае - электрическое - поле, посредством которого взаимодействуют электрические заряды.
Для обнаружения и опытного исследования электростатического поля используется пробный точечный положительный заряд - такой заряд, который не искажает исследуемое поле (не вызывает перераспределение зарядов, создающих поле). Если в поле, создаваемое зарядом Q, поместить пробный заряд Q0, то на него действует сила F, различная в разных точках поля, которая, согласно закону Кулона, пропорциональна пробному заряду Q0. Поэтому отношение F/Q0, не зависит от Q0 и характеризует электростатическое поле в той точке, где пробный заряд находится. Эта величина называется напряжённостью и является силовой характеристикой электростатического поля.
Напряжённость электростатического поля в данной точке есть физическая величина, определяемая силой, действующей на пробный единичный, положительный заряд, помещённый в эту точку поля:
E = F/Q0 (4)
Напряжённость поля точечного заряда в вакууме:
(5)
Направление вектора Е совпадает с направлением силы, действующей на положительный заряд. Если поле создается положительным зарядом, то вектор Е направлен вдоль радиуса-вектора от заряда во внешнее пространство (отталкивание пробного положительного заряда); если поле создается отрицательным зарядом, то вектор Е направлен к заряду
Рис 3. Направления вектора Е относительно заряда
Единица напряженности электростатического поля - ньютон на кулон (Н/Кл): 1Н/Кл - напряженность такого поля, которое на точечный заряд 1 Кл действует с силой в 1 Н.
Графически электростатическое поле изображают с помощью линий напряжённости - линий, касательные к которым в каждой точке совпадают с направлением вектора Е. Линиям напряжённости, приписывается направление, совпадающее с направлением вектора напряжённости. Так как в каждой данной точке пространства вектор напряжённости имеет лишь одно направление, то линии напряжённости никогда не пересекаются.
Для однородного поля (когда вектор напряженности в любой точке постоянен по величине и направлению) линии напряженности параллельны вектору напряженности. Если поле задается точечным зарядом, то линии напряженности - радиальные прямые, выходящие из заряда, если он положителен и входящие в него, если заряд отрицателен.
Чтобы с помощью линий напряжённости можно было характеризовать не только направление, но и значение напряжённости электростатического поля, условились проводить их с определённой густотой: число линий напряжённости, пронизывающих единицу площади поверхности, перпендикулярную линиям напряжённости, должно быть равно модулю вектора Е. Тогда число линий напряжённости, пронизывающих элементарную площадку dS, нормаль n которой образует угол л с вектором Е, равно EdScosл = EndS, где En - проекция вектора Е на нормаль n к площадке dS. Величина:
dФЕ = EndS = EdS (6)
называется потоком вектора напряжённости через площадку dS.
Единица потока вектора напряженности электрического поля - 1В*м.
4.2.4 Принцип суперпозиции электростатических полей
Опыт показывает, что к кулоновским силам применим принцип независимости действия сил, т.е. результирующая сила F, действующая со стороны поля на пробный заряд Q0, равна векторной сумме сил Fi, приложенных к нему со стороны каждого из зарядов Qi
(7)
Формула (7) выражает принцип суперпозиции (наложения) электростатических полей, согласно которому напряженность Е результирующего поля, создаваемого системой зарядов, равна геометрической сумме напряженностей полей, создаваемых в данной точке каждым из зарядов в отдельности.
Принцип суперпозиции позволяет рассчитать электростатические поля любой системы неподвижных зарядов, поскольку если заряды не точечные, то их можно всегда свести к совокупности точечных зарядов.
4.3 Построение математической модели
Рассмотрим модель движения частицы с зарядом q и массой m в кулоновском поле другой частицы с зарядом Q, положение которой фиксировано.
В системе координат, начало которой привязано к "большому" телу, уравнения модели в простейшем приближении имеют вид
Они получаются из второго закона Ньютона и закона Кулона. = 0,85.1012 ф/м электрическая постоянная. Знак "" в уравнениях для скорости соответствует разноименно заряженным частицам; в случае одноименных зарядов он меняется на "+".
Входные параметры модели:
q и Q соответственно заряды движущейся и закрепленной частиц;
m масса движущейся частицы;
начальные координаты движущейся частицы;
начальная скорость движущейся частицы либо угол прицеливания
Выходные параметры модели:
время t
координата х
координата у
Исходя из выше приведенных формул, строим систему дифференциальных уравнений, отображающей положение движущейся частицы q в определенный момент времени, и ее скорость относительно двух перпендикулярных осей.
5. Реализация модели
Программная реализация модели производилась в среде разработки Delphi 7.0. В качестве метода решения системы дифференциальных уравнений был выбран метод Рунге-Кутта четвертого порядка.
5.1 Алгоритмы
5.1.1 Алгоритм вычисления положения тела
Размещено на http://www.allbest.ru/
5.1.2 Алгоритм функции вычисления скоростей и координат
Размещено на http://www.allbest.ru/
5.2 Руководство пользователя
При запуске перед пользователем открывается окно программы, на котором мы видим две панели. Одна панель служит для задания параметров модели, а на другой расположены функциональные кнопки. Для наглядности ниже панелей расположен рисунок.
Такие параметры как заряды, масса электрона, приращение заданы изначально и не могут меняться. Расстояния же между зарядами, высота мишени, начальная скорость частицы и угол прицеливания могут задаваться пользователем.
На правой панельке расположены следующие кнопки:
"Моделирование". Служит для моделирования системы после ввода всех параметров.
"Попасть". Служит для нахождения величины, по которой будет происходить подстройка.
"График". Служит для отображения результата в графическом виде.
"Таблица". Служит для отображения результата в виде таблицы.
Моделирование полета частицы происходит следующим образом:
Вводятся значения величин a, c, d.
Открывается окно "Попадание", в котором:
Выбирается величина, по которой будет происходить подстройка
вводится значение второй величины
При нажатии на кнопку "моделировать" рассчитывается значение выбранной величины.
Если вводятся значения, при которых попадание невозможно, то появляется сообщение, повествующее об этом.
Далее нажимается кнопка "Моделировать" в основном окне для, непосредственно, моделирования системы.
С результатами можно ознакомиться как с помощью строящегося графика, так и с помощью таблицы, в которую выводятся значения времени и координат частицы. Также имеется возможность сохранить результаты из таблицы в текстовый файл.
5.3 Пример моделирования движения заряженной частицы.
В открывшемся окне программы вводим параметры a, c, d.
Рис 4. Основное окно программы
В качестве величины, по которой происходит настройка, берется угол прицеливания. Вводится значение начальной скорости. Нажимается кнопка "моделировать" и рассчитывается значение угла.
Рис 5. Окно подстройки
Нажимается кнопка "моделировать" в основном окне.
Рис 6. Основное окно программы
При нажатии на кнопку "Таблица" открывается окно с результатами расчета в численном виде.
Рис 7. Окно результатов в табличном виде
При нажатии на кнопку "График" открывается окно с результатами расчета графическом виде.
Рис 7. Окно результатов в графическом виде
5.4 Результаты работы программы
Моделирование производилось при постоянных значениях величин a=3, c=1, d=0,5. Меняли значение угла прицеливания Y и рассчитывали начальную скорость V0
На рисунках показаны графики зависимости координаты частицы от времени
Рис 8. графики зависимости координаты частицы от времени при Y = 10, V0 = 175
Рис 9. графики зависимости координаты частицы от времени при Y = 20, V0 = 72
Рис 10. графики зависимости координаты частицы от времени при Y = 40, V0 = 40
Рис 11. графики зависимости координаты частицы от времени при Y = 70, V0 = 29
Найдем значения скорости, при задании значений угла в диапазоне от 100 до 850 (табл. 1) и составим график зависимости начальной скорости от угла прицеливания.
Рис 12. График зависимости скорости от угла
Таблица 1
Y |
V0 |
|
10 |
175 |
|
15 |
98 |
|
20 |
72 |
|
25 |
59 |
|
30 |
50 |
|
35 |
44 |
|
40 |
40 |
|
45 |
36 |
|
50 |
34 |
|
55 |
32 |
|
60 |
30 |
|
65 |
29 |
|
70 |
29 |
|
75 |
28 |
|
80 |
28 |
|
85 |
28 |
Из графика можно сделать вывод, что начальная скорость и угол прицеливания обратно пропорциональны.
Заключение
Задача курсовой работы - определить, при каких соотношениях величины начальной скорости V0 движущейся в электрическом поле заряда Q, частицы зарядом q и угла прицеливания б эта частица попадет в заданную точку. Учесть также то, что заряды частиц разных знаков.
Поставленная задача выполнена. В ходе курсовой работы была изучена специальная литература, разработана программа, позволяющая рассчитать положение заряда во время его полета; определена зависимость местонахождения частицы от величины начальной скорости и угла прицеливания.
В результатах работы возможна погрешность из-за погрешности метода решения, но ее величина невелика, и ей можно пренебречь.
Проблемы, возникавшие в результате выполнения работы, связаны с нехваткой консультаций и моей неорганизованностью.
Данная модель может быть использована для наглядного изображения движения заряженных частиц, а также для выявления зависимости координаты заряда q в определенный момент времени от начальных координат заряда, начальной скорости и угла прицеливания.
Список литературы
1. Фленов М.Е. Delphi. - СПб.: БХВ-Петербург, 2010. - 368 с: ил.
2. Вирт Н. Алгоритмы и структуры данных. М.: Мир, 2009. - 55
3. А.В. МОГИЛЕВ, Н.И. ПАК, Е.К. ХЕННЕР ПРАКТИКУМ ПО ИНФОРМАТИКЕ 2005 609с.
4. Бусленко Н.П. Моделирование сложных систем. - М.: Наука, 2008. - 399 с.
5. Трофимова В.И. Курс Физики: Учеб. Пособие для вузов. - 7-е изд. - М: Высш. шк., 2011. - 542 с.: ил.
Приложение А
Текст программы
Основное окно
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, XPMan;
type
TForm1 = class (TForm)
Image1: TImage;
GroupBox1: TGroupBox;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
LabeledEdit6: TLabeledEdit;
LabeledEdit7: TLabeledEdit;
XPManifest1: TXPManifest;
GroupBox2: TGroupBox;
LabeledEdit8: TLabeledEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
LabeledEdit9: TLabeledEdit;
procedure Button3Click (Sender: TObject);
procedure Button4Click (Sender: TObject);
function prover: boolean;
procedure Button1Click (Sender: TObject);
function fu (q1,q2,m,x,y: real; n: byte): real;
procedure Button2Click (Sender: TObject);
private
public
procedure podgon (n: byte);
end;
var
Form1: TForm1;
q1,q2,a,c,d,v,f,vx,vy,x,y,dt,m,t: real;
implementation
uses Unit2, Unit4, Unit3;
{$R *. dfm}
procedure TForm1. Button3Click (Sender: TObject);
begin
form2. show;
end;
procedure TForm1. Button4Click (Sender: TObject);
begin
form4. show;
end;
function tform1. prover;
begin
try
prover: =false;
try
q1: =strtofloat (labelededit1. text);
except
on EConvertError do begin labelededit1. text: ='';
showmessage ('Неправильный формат числа "'+labelededit1. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
try
a: =strtofloat (labelededit3. text);
except
on EConvertError do begin labelededit3. text: ='';
showmessage ('Неправильный формат числа "'+labelededit3. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
try
c: =strtofloat (labelededit4. text);
except
on EConvertError do begin labelededit4. text: ='';
showmessage ('Неправильный формат числа "'+labelededit4. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
try
d: =strtofloat (labelededit5. text);
except
on EConvertError do begin labelededit5. text: ='';
showmessage ('Неправильный формат числа "'+labelededit5. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
try
v: =strtofloat (labelededit6. text);
except
on EConvertError do begin labelededit6. text: ='';
showmessage ('Неправильный формат числа "'+labelededit6. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
try
f: =strtofloat (labelededit7. text);
except
on EConvertError do begin labelededit7. text: ='';
showmessage ('Неправильный формат числа "'+labelededit7. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
try
dt: =strtofloat (labelededit8. text);
except
on EConvertError do begin labelededit8. text: ='';
showmessage ('Неправильный формат числа "'+labelededit8. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
try
m: =strtofloat (labelededit9. text);
except
on EConvertError do begin labelededit9. text: ='';
showmessage ('Неправильный формат числа "'+labelededit9. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
try
q2: =strtofloat (labelededit2. text);
except
on EConvertError do begin labelededit2. text: ='';
showmessage ('Неправильный формат числа "'+labelededit2. editlabel. Caption+'"'); // если данные не являются числом
end;
end;
prover: =true;
except
on EConvertError do showmessage ('Неправильный формат числа'); // если данные не являются числом
end;
end;
procedure TForm1. Button1Click (Sender: TObject);
VAR K1_1,k2_1,k3_1,k4_1, k1_2,k2_2,k3_2,k4_2: double; dv,vis: integer;
begin
if prover then
begin
begin
form2. Series1. Clear;
x: =-a;
y: =0;
t: =0;
vis: =0;
dv: =1;
vx: =v*cos ( (f/180) *pi);
vy: =v*sin ( (f/180) *pi);
while (x<c) and (y>=0) do
begin
k1_1: =fu (q1,q2,m,x,y,1);
k1_2: =fu (q1,q2,m,x,y,2);
k2_1: =fu (q1,q2,m,x+dt* (vx+k1_1/2),y+dt* (vy+k1_2/2),1);
k2_2: =fu (q1,q2,m,x+dt* (vx+k1_1/2),y+dt* (vy+k1_2/2),2);
k3_1: =fu (q1,q2,m,x+dt* (vx+k1_2/2),y+dt* (vy+k2_2/2),1);
k3_2: =fu (q1,q2,m,x+dt* (vx+k2_1/2),y+dt* (vy+k2_2/2),2);
k4_1: =fu (q1,q2,m,x+dt* (vx+k3_1),y+dt* (vy+k3_2),1);
k4_2: =fu (q1,q2,m,x+dt* (vx+k3_1),y+dt* (vy+k3_2),2);
vy: =vy+dt* (k1_2+2*k2_2+2*k3_2+k4_2) /6;
vx: =vx+dt* (k1_1+2*k2_1+2*k3_1+k4_1) /6;
x: =x+dt*vx;
y: =y+dt*vy;
t: =t+dt;
if vis=0 then
begin
form2. chart1. Series [0]. AddXY (x,y,'',clgreen);
form4. StringGrid1. Rows [round (form4. StringGrid1. RowCount-1)]. Strings [0]: =floattostr (t);
form4. StringGrid1. Rows [round (form4. StringGrid1. RowCount-1)]. Strings [1]: =floattostr (x);
form4. StringGrid1. Rows [round (form4. StringGrid1. RowCount-1)]. Strings [2]: =floattostr (y);
form4. StringGrid1. RowCount: =form4. StringGrid1. RowCount+1;
end;
vis: =vis+1;
if vis=dv then vis: =0;
end;
form4. StringGrid1. RowCount: =form4. StringGrid1. RowCount-1;
end;
end;
end;
function tform1. fu;
begin
case n of
1: fu: = (1/ (4*pi*0.85e-12)) * (q1*q2/m) * (x/sqrt (x*x+y*y));
2: fu: = (1/ (4*pi*0.85e-12)) * (q1*q2/m) * (y/sqrt (x*x+y*y));
end;
end;
procedure TForm1. Button2Click (Sender: TObject);
begin
form3. show;
form3. LabeledEdit1. Text: =LabeledEdit1. Text;
form3. LabeledEdit6. Text: =LabeledEdit6. Text;
form3. LabeledEdit7. Text: =LabeledEdit7. Text;
end;
procedure tform1. podgon;
VAR K1_1,k2_1,k3_1,k4_1, k1_2,k2_2,k3_2,k4_2,y1,f0,g0: double;
begin
if prover then
begin
f0: =f;
repeat
t: =0;
x: =-a;
y: =0;
vx: =v*cos ( (f/180) *pi);
vy: =v*sin ( (f/180) *pi);
while (x<c) and (y>=0) do
begin
k1_1: =fu (q1,q2,m,x,y,1);
k1_2: =fu (q1,q2,m,x,y,2);
k2_1: =fu (q1,q2,m,x+dt* (vx+k1_1/2),y+dt* (vy+k1_2/2),1);
k2_2: =fu (q1,q2,m,x+dt* (vx+k1_1/2),y+dt* (vy+k1_2/2),2);
k3_1: =fu (q1,q2,m,x+dt* (vx+k1_2/2),y+dt* (vy+k2_2/2),1);
k3_2: =fu (q1,q2,m,x+dt* (vx+k2_1/2),y+dt* (vy+k2_2/2),2);
k4_1: =fu (q1,q2,m,x+dt* (vx+k3_1),y+dt* (vy+k3_2),1);
k4_2: =fu (q1,q2,m,x+dt* (vx+k3_1),y+dt* (vy+k3_2),2);
vy: =vy+dt* (k1_2+2*k2_2+2*k3_2+k4_2) /6;
vx: =vx+dt* (k1_1+2*k2_1+2*k3_1+k4_1) /6;
x: =x+dt*vx;
y: =y+dt*vy;
t: =t+dt;
end;
if (abs (y-d) > (d/100)) then
begin
if y<=0 then y: =d/10;
case n of
0: begin
v: =v*sqrt (d/y);
end;
1: begin
f: =f*sqrt (d/y);
end;
2: begin
if q2>0 then
begin
if q1>0 then q1: =q1*sqr (d/y)
else q1: =q1*sqr (sqr (y/d))
end
else
begin
if q1<0 then q1: =q1* (d/y)
else q1: =q1*sqr (sqr (y/d))
end;
end;
end;
end;
if f>89 then begin showmessage ('при данных v и q попадаение не возможно'); f: =f0; break; end;
until (abs (y-d) < (d/100));
labelededit6. Text: =floattostr (v);
labelededit7. Text: =floattostr (f);
y1: =y;
labelededit1. Text: =floattostr (q1);
end;
end;
end.
Окно графика:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm2 = class (TForm)
Chart1: TChart;
Series1: TLineSeries;
procedure FormResize (Sender: TObject);
private
public
end;
var
Form2: TForm2;
implementation
{$R *. dfm}
procedure TForm2. FormResize (Sender: TObject);
begin
chart1. Width: =form2. ClientWidth;
chart1. Height: =form2. ClientHeight;
end;
end.
Окно настройки попадания в мишень:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm3 = class (TForm)
LabeledEdit6: TLabeledEdit;
LabeledEdit7: TLabeledEdit;
LabeledEdit1: TLabeledEdit;
Button1: TButton;
RadioGroup1: TRadioGroup;
procedure Button1Click (Sender: TObject);
private
public
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *. dfm}
procedure TForm3. Button1Click (Sender: TObject);
begin
form1. LabeledEdit1. Text: =LabeledEdit1. Text;
form1. LabeledEdit6. Text: =LabeledEdit6. Text;
form1. LabeledEdit7. Text: =LabeledEdit7. Text;
form3. Hide;
form1. podgon (radiogroup1. ItemIndex);
end;
end.
Окно таблицы:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Menus;
type
TForm4 = class (TForm)
MainMenu1: TMainMenu;
Save1: TMenuItem;
Savetofile1: TMenuItem;
StringGrid1: TStringGrid;
SaveDialog1: TSaveDialog;
procedure FormCreate (Sender: TObject);
procedure Savetofile1Click (Sender: TObject);
private
public
end;
var
Form4: TForm4;
implementation
{$R *. dfm}
procedure TForm4. FormCreate (Sender: TObject);
begin
stringgrid1. Rows [0]. Strings [0]: ='время';
stringgrid1. Rows [0]. Strings [1]: ='x';
stringgrid1. Rows [0]. Strings [2]: ='y';
end;
procedure TForm4. Savetofile1Click (Sender: TObject);
begin
if savedialog1. Execute then
if savedialog1. FileName<>''then begin
stringgrid1. cols [0]. SaveToFile (savedialog1. FileName+'t. txt');
stringgrid1. cols [1]. SaveToFile (savedialog1. FileName+'x. txt');
stringgrid1. cols [2]. SaveToFile (savedialog1. FileName+'y. txt');
end;
end;
end.
Размещено на Allbest.ru
Подобные документы
Применение гетерогенных вычислительных систем в задачах молекулярной динамики. Потенциалы взаимодействия частиц. Процесс разработки приложения с использованием Altera Open CL Compiler. Сравнение архитектур ГУ и ПЛИС, их пиковая производительность.
дипломная работа [2,0 M], добавлен 22.08.2017"Рой частиц" как наиболее простой метод эволюционного программирования, основанный на идеи о возможности решения задач оптимизации с помощью моделирования поведения групп животных. Схема работы алгоритма, составление кода программы и блок-схемы.
курсовая работа [38,5 K], добавлен 18.05.2013Абстрактный анализ и синтез модели предметной области. Разработка структуры, внешних и внутренних спецификаций программы. Описание программы Kurs и подпрограммы Openf, особенности и результаты их тестирования. Руководство программиста и пользователя.
курсовая работа [503,2 K], добавлен 14.07.2012Рзработка библиотеки, которая позволит моделировать динамику частиц в трехмерной графики. Выбор средств и методов разработки. Варианты моделирования систем частиц. Моделирование на вершинном шейдере. Диаграммы класса Particle System и PSBehavior.
курсовая работа [4,4 M], добавлен 07.02.2016Разработка модели движения практически невесомой заряженной частицы в электрическом поле, созданном системой нескольких фиксированных в пространстве заряженных тел. При условии, что тела находятся в одной плоскости, но частица находится вне плоскости.
контрольная работа [60,7 K], добавлен 31.05.2010Разработка редактора частиц "Easy Particles", позволяющего создавать несложные эффекты графики. Инсталляция программы, анализ ее надёжности. Модель и сборка приложения. Обоснование экономической целесообразности разработки программного средства.
дипломная работа [742,6 K], добавлен 09.09.2010Описание проектного решения стратегической системы, этапы объектно-ориентированного анализа и проектирования. Описание связей между объектами. Программная реализация, построение модели состояний объекта. Руководство пользователя и описание программы.
курсовая работа [388,8 K], добавлен 17.11.2011Моделирование движения невесомой заряженной частицы в электрическом поле, созданном системой нескольких фиксированных в пространстве заряженных тел, в случае, когда заряженные тела находятся в одной плоскости и в ней же находится движущаяся частица.
курсовая работа [62,7 K], добавлен 31.05.2010Словесное описание предметной области. Построение схемы функциональных зависимостей. Реализация базы данных средствами утилиты Enterprise Manager в формате SQL Server Management Studio. Разработка алгоритмов работы программы и приложения пользователя.
дипломная работа [1,8 M], добавлен 26.03.2015Создание программы на языке программирования Visual Prolog. Разработка математической модели. Функциональные характеристики программы: оптимальный маршрут для такси. Интерфейс пользователя, руководство программиста, функциональная схема, тестовый пример.
курсовая работа [515,4 K], добавлен 18.10.2010