Движение заряженных частиц

Построение математической модели движения заряженных частиц, реализация на алгоритмическом языке с помощью ЭВМ. Описание предметной области. Имитация взаимодействия двух разноименно заряженных частиц. Результаты работы программы, руководство пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.