Скатывание шарика с эллиптической горки

Автор работы: Пользователь скрыл имя, 08 Ноября 2015 в 13:46, курсовая работа

Описание работы

Из перечисленных примеров может сложиться впечатление, что некоторые математические объекты и операции не реализуются компьютером в их совершенстве и полноте, но таких объектов как будто мало, и их нужно специально отыскивать. Однако такое впечатление, если бы оно возникло, было бы ошибочным. В действительности, пожалуй, нет таких математических объектов и операций, которые были воплощены в компьютере точно. Так, самая очевидная и простая операция - сложение целых чисел - может быть выполнена компьютером лишь для некоторых целых чисел.

Файлы: 1 файл

Курсовая работа по мат методам.docx

— 140.65 Кб (Скачать файл)

Негосударственное образовательное учреждение

среднего профессионального образования

«Абаканский техникум прикладной информатики»

Специальность

230115 Программирование в компьютерных  системах

Дисциплина

Численные и Математические методы

 

Допускается к защите

Заместитель директора по учебной работе

_________________________________ / Власова  Л. В. /

14 ноября 2014 г.


КУРСОВАЯ РАБОТА

на тему

Скатывание шарика с эллиптической горки.

студента группы 323

Тарадаева Виталия Евгеньевича

Научный руководитель – преподаватель компьютерных дисциплин НОУ СПО «АТПИ»

Скаерин Виктор Алексеевич

Дата защиты курсовой работы  17 ноября 2014 г.

Оценка________________________________________




 

 

 

 

 

 

 

 

 

 

 

Абакан, 2014

 

Оглавление

 

 

 

Введение

При моделировании реальных систем мы вначале составляем некоторое представление о реальной системе, достаточно точное, чтобы можно было что-либо утверждать о системе доказательно. Это значит, что мы формируем математическую (в широком смысле слова) модель системы. Затем эту математическую модель мы превращаем в модель компьютерную. Следовательно, математические представления играют при моделировании роль своеобразного «интерфейса» между компьютерными моделями и реальными системами.

Но мы должны понимать, что объекты, реализованные в компьютерной программе, только лишь похожи на соответствующие математические объекты, но не идентичны им. Например, прямая линия на экране дисплея не есть то же самое, что прямая линия в математике. В математике прямая линия не имеет толщины. А на экране компьютера прямая не может не иметь определенную толщину, иначе она не была бы видна.

Это обычная компьютерная практика - моделировать математические объекты с известными свойствами посредством физических (компьютерных) объектов, которые сами этими свойствами не обладают. При этом, хотя точность моделирования математических объектов компьютерными может быть очень высокой, это все-таки не избавляет нас от необходимости понимания замаскированных различий между исходными математическими объектами и их компьютерными образами.

Рассмотрим еще один пример. Вещественные величины в математике непрерывны, а в компьютере дискретны, т.к. длина разрядной сетки у компьютерных чисел принципиально ограничена. Точность представления конкретных вещественных чисел при этом может быть сколь угодно большой. Так, число p можно представить с двумя знаками после запятой, с десятью, с сотней знаков и т.д. Но такое свойство этого числа, как его иррациональность и трансцендентность, ни одно из компьютерных приближений «ухватить» не может. Это пример различия хотя и тонкого, но принципиального.

Другой подобный нюанс возникает при численном дифференцировании функций. В математике мы пользуемся для вычисления производной dy/dx пределом отношения Δy/Δx при Δx, стремящемся к нулю. На компьютере приращения Δy и Δx можно брать  малыми, обеспечивая все более высокую точность вычисления производной. Однако, в отличие от математических законов, уменьшение приращений в компьютере будет приводить к повышению точности результата лишь до некоторого момента, после которого дальнейшее уменьшение приращений будет вызывать уже рост ошибки и закончится либо тем, что приближенное значение производной превратится в нуль, либо тем, что компьютер сообщит об ошибке «деление на нуль». Причина - ограниченность разрядной сетки, т.е., в конечном счете, - отличие компьютерных вещественных чисел от математических.

Из перечисленных примеров может сложиться впечатление, что некоторые математические объекты и операции не реализуются компьютером в их совершенстве и полноте, но таких объектов как будто мало, и их нужно специально отыскивать. Однако такое впечатление, если бы оно возникло, было бы ошибочным. В действительности, пожалуй, нет таких математических объектов и операций, которые были воплощены в компьютере точно. Так, самая очевидная и простая операция - сложение целых чисел - может быть выполнена компьютером лишь для некоторых целых чисел. Если числа достаточно большие, то результат сложения переполнит разрядную сетку, т.е. компьютер не сможет сложить двух чисел. Выходит, что из бесконечного множества целых чисел «лишь некоторые», лишь конечное их множество, доступны компьютеру для сложения.

Подобные нюансы в компьютерных представлениях математических объектов неисчислимы. Они приводят, в конечном счете, к тому, что правильное применение компьютера для решения серьезных задач может гарантироваться только совместными усилиями профессионалов высокой квалификации в области вычислительной техники, в области математики и в той предметной области, в которой компьютер применяется. Это соответствует специфике тройственного отношения «реальная система - математическая модель - компьютерная модель».

В связи с этим уместно упомянуть еще об одном распространенном разрыве соответствий в рамках рассматриваемого тройственного отношения. Весьма часто используемым элементом в компьютерных моделях являются датчики случайных чисел. Несомненно, что их правильное применение можно гарантировать лишь при достаточной квалификации в теории вероятностей и в математической статистике. Обычно необходима еще и квалификация в той отрасли прикладной математики, которая специализируется на моделях заданной предметной области (например, в теории массового обслуживания). Но и этих математических квалификаций мало, т.к. компьютерные случайные числа не идентичны математическим случайным числам.

Например, они совсем не являются случайными числами. Они вычисляются через некоторое начальное значение по рекуррентной формуле. Значит, можно заранее вычислить и предсказать любое из последующих «случайных» чисел, зная единственное начальное значение. Более точное название компьютерных «случайных чисел» - это псевдослучайные числа.

Псевдослучайные числа позволяют моделировать случайные числа, в принципе, с любой заданной точностью. Так, программа «генератор базовой случайной величины» выдает псевдослучайные числа, «равномерно распределенные» на интервале (0,1) и «статистически независимые». И никакой другой физический объект или устройство не позволяют получить базовую случайную величину, которая столь точно отвечала бы критериям и тестам математической статистики.

Но, тем не менее, при использовании компьютерного датчика возникает целый ряд специфических нюансов, часть из которых перечислена в Приложении 1 «Пояснения к статистическому методу». Эти нюансы не видны просто математику или просто программисту, но видны специалисту, который одновременно и математик, и программист, т.е.  специалист «на стыке», специалист нового конкретного узкого направления.

http://www.rae.ru/monographs/39-1168

 

 

 

 

2. Постановка задачи:

Смоделировать скатывание шарика с дуговой плоскости, где после окончания дуги он падает на наклонную плоскость и отталкивается от ней.

2.1. Условия задачи:

Шарик должен скатиться с дуговой плоскости, при это нужно учитывать силу трения, силу скатывающую, прижимную силу, силу тяжести и силу упругости.

При попадании на площадь с наклонной плоскостью, нужно учесть только проекции, угол отражения и силу тяжести.

2.2. Физические явления  и законы используемые в модели:

Движение рассматривается на двух участках, круговом и наклонном. Проведена касательная, отображены Ft(сила тяжести), Fs(скатывающая сила), Fp(прижимная сила), Fu(сила упругости). Сила упругости найдена по закону Гука(4-й источник): Fu = k * d, где k – коэффициент жесткости, d – деформация. Чтобы найти деформацию, найдем настоящее расстояние и расстояние с деформацией: .(расстояние от центра шарика до центра жёлоба). Для нахождения расстояния от центра шарика до желоба( r) применена теорема Пифагора: . Проекции сил найдены из подобия треугольника и треугольника расстояния: ==  =>  , . Сила трения по формуле(Закон Кулона , 3-й источник): = .

Проекции сил трения находятся из подобия треугольника сил и треугольника расстояний: ==  => (знак минус взят из физических соображений), . Аналогично: = =  =>  , . Результирующие проекции всех сил по оси OX и OY: ,

Проекции ускорений находятся по второму закону Ньютона(Источник номер 2 «Второй закон Ньютона»): , , где m это масса шарика. Новые скорости и координаты: , (), , . Величины и слишком маленькие, поэтому в данной модели для они не используются.

Переход ко второму участку происходит тогда, когда шарик пересекает вертикальную линию от центра дуги ().

Проекции сил сопротивления находятся из подобия треугольника сил и треугольника скоростей:  =>  , , (Как говорится во втором источнике) знаки минус взяты из физических соображений. , где Re(число Рентгольц), S(площадь поперечного сечения), v(скорость). V находится по теореме Пифагора: . Проекции ускорений найдены по второму закону Ньютона: , . Так как модель динамическая, то скорости и координаты рассчитываются за очень маленький промежуток времени dt, в течении которого движение можно считать равноускоренным, это выполнено еще в первой части.

Рассматривается столкновение шарика с плоскостью. Для этого найдено кратчайшие расстояние от центра шарика до плоскости и сравнивается оно с радиусом шарика.

Далее находится уравнение прямой d (),

α, (уравнение прямой взято с первого источника литературы «Уравнение прямой»). Найдено уравнение перпендикуляра к плоскости. Уравнение самой плоскости находится по формулам: , , . Далее прировняв эти 2 уравнения находится точка пересечения: , (5-й источник литературы «Теорема Пифагора»). Если столкновение было, то находится новая скорость шарика после столкновения:

,

 находится из треугольника  скоростей: , , , , γ это угол в новом треугольник скоростей следовательно: , .

Так как при ударе энергия (а значит скорость) уменьшилась, то учитывается это уменьшение отсрочено, после того как находится новая координата.

 

2.3. План(блок схема) модели:

 

3. Реализация программы:

Данная программа состоит из одного модуля и нескольких подпрограмм в данном модуле. Модель считается успешно выполненная.

3.1. Основные части программы, используемые данные:

Основные части программы, это процедуры :, FormCreate, Timer1Timer, Timer2Timer. В процедуре «FormCreate» создание кадра и задание размеров. В «Button1Click» Задание начальных параметров, угла наклона, скоростей и включение таймера движения по элипстической дуге. В «Timer2Timer» соответственно само движение по элипстической дуге, если дуга закончилась, то переход к следующему таймеру. В «Timer1Timer» движение по наклонной плоскости, где шарик падает на наклонную плоскость, и отражается под тем же углом теряя скорость, как шарик выходит за правый предел экрана, то модель завершает работу.

3.2. Описание работы программы:

Данная программа является моделью скатывания шарика с эллиптической горки(третья четверть круга), далее там ниже расположена наклонная плоскость угол (от -5 до 40 градусов) которой задается в начале работы модели, перед запуском. Как только шарик задел наклонную плоскость, он отражается под тем же углом теряя при этом скорость.

 

4. Выводы:

Как описано в части 3.2, работу можно считать выполненной, так как модель выполняет нужные требования.

 

 

5. Список литературы:

1. http://ru.wikipedia.org/wiki/%CF%F0%FF%EC%E0%FF – Уравнение прямой.

2. http://ru.wikipedia.org/wiki/Второй_закон_Ньютона - Второй закон Ньютона

3. http://ru.wikipedia.org/wiki/Сила_трения - Закон Кулона.

4. http://ru.wikipedia.org/wiki/Закон_Гука - Закон Гука.

5.http://ru.wikipedia.org/wiki/%D2%E5%EE%F0%E5%EC%E0_%CF%E8%F4%E0%E3%EE%F0%E0 – Теорема Пифагора.

6. http://www.soprotmat.ru/kruch.htm - Сила трения

7. www.nado5.ru/e-book/sila-yavlenie-tyagoteniya-sila-tyazhesti - Сила притяжения земли.

8. http://www.univer.omsk.su/omsk/Edu/Rusanova/triangls.htm - Подобие треугольников.

9. http://ru.wikipedia.org/wiki/%D3%F1%EA%EE%F0%E5%ED%E8%E5_%F1%E2%EE%E1%EE%E4%ED%EE%E3%EE_%EF%E0%E4%E5%ED%E8%FF – Ускорение свободного падения.

10. http://ru.wikipedia.org/wiki/%D2%F0%E8%E3%EE%ED%EE%EC%E5%F2%F0%E8%FF – Тригонометрия.

 

6. Приложение исходный код программы:

unit Unit1;

 

interface

 

uses

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Math, Vcl.ComCtrls;

 

type

  TForm1 = class(TForm)

    Label3: TLabel;

    Edit3: TEdit;

    Button1: TButton;

    Timer1: TTimer;

    Timer2: TTimer;

    UpDown1: TUpDown;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure Timer2Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

Const

  m = 1.0;

  g = 9.8;

  Ft = m * g;

  n = 0.01;//этта

  Re = 1.0;//Число рентольца

  R = 20.0;//Радиус шарика

  s  = 1.0;//pi * r * r/100;//1.0;

  dt = 0.01;

  Rg = 200.0;//радиус горки

  mu = 0.1;

  k = 100.0;

  us = 5;//ускорение модели

 

var

  Form1: TForm1;

  kadr, kadr1: TBitmap;

  x, y, xc, yc, x2, y2, vx, vy, alf, x0, y0, vvx, vvy: Real;

 

implementation

{$R *.dfm}

//Запускаем модель с  начальной скоростью

procedure TForm1.Button1Click(Sender: TObject);

var

  s1:String;

begin

  S1 := Form1.Edit3.Text;

  if (s1 = '') then

  begin

    MessageDlg('Не все введено!!!!!', mtError, [mbOK], 0);

    exit;

  end;

  alf := UpDown1.Position * pi / 180;

  x0 := 200;

  y0 := 300;

  vvx := 0;

  vvy := 0;

  x2 := 0;

  y2 := 600;

  xc := 200;

  yc := 600;

  Form1.Timer2.Enabled := True;

end;

//Создаем кадр

procedure TForm1.FormCreate(Sender: TObject);

begin

  kadr := TBitmap.Create;

  kadr.Width := Form1.ClientWidth;

  kadr.Height := Form1.ClientHeight - 100;

  kadr1 := TBitmap.Create;

  kadr1.Width := Form1.ClientWidth;

  kadr1.Height := Form1.ClientHeight - 100;

end;

//Таймер движения по  наклонной плоскости

procedure TForm1.Timer1Timer(Sender: TObject);

var

  fs, v, fsx, fsy, fx, fy, ax, ay, bet, gam, d, k1, k2, b2, b1, xp, yp, fi: Real;

  i: Integer;

begin

  //Покажем текущий кадр

  Kadr.Canvas.Brush.Color := clWhite;

  kadr.Canvas.FillRect(rect(0, 0, 900, 600));

  kadr.Canvas.Pen.Color := 0;

  kadr.Canvas.Pen.Width := 3;

  kadr.Canvas.MoveTo(200, 600 - 400);

  kadr.Canvas.LineTo(200, 600 - 300);

  kadr.Canvas.Arc(0, 600 - 800, 400, 600 - 400, 0, 600 - 600, 200, 600 - 400);

  kadr.Canvas.MoveTo(round(x0), round(600 - y0));

  kadr.Canvas.LineTo(round(900), round(600 - y0 + (900 - x0) * sin(alf) / cos(alf)));

Информация о работе Скатывание шарика с эллиптической горки