Моделирование математического уравнения движения материальной точки

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    115,82 Кб
  • Опубликовано:
    2015-03-03
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Моделирование математического уравнения движения материальной точки

1. Введение

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

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

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

Исходя из поставленной цели, можно выделить следующие задачи: рассмотреть физическую и математическую модели решения предложенного задания; разработать алгоритм решения задачи реализованный в виде блок-схемы; написать работоспособную программу на языке программирования Pascal.

2. Постановка задачи и определение конечных целей

Задано уравнение движения материальной точки . Необходимо построить физическую и математическую модель движения.

Построение модели движения сводится к решению обыкновенного дифференциального уравнения первого порядка.

Поэтому необходимо решить задачу Коши для дифференциального уравнения 1 - го порядка на отрезке [tо=1, tк=2] с шагом h=0.1 и начальным условием x(tо)= 16.

Ответ должен быть получен в виде таблицы результатов:

t

x(1)

x(2)

t0

x0(1)

x0(2)

t1

x1(1)

x1(2)

tk

xk(1)

xk(2)


где: x(1), x(2) - решения, полученные различными численными методами.

Данные таблицы визуализировать в виде графиков.

Чтобы решить обыкновенное дифференциальное уравнение, необходимо знать значения зависимой переменной и (или) её производных при некоторых значениях независимой переменной. Если эти дополнительные условия задаются при одном значении независимой переменной, то такая задача называется задачей с начальными условиями, или задачей Коши.

Задачу Коши можно сформулировать следующим образом.

Пусть дано дифференциальное уравнение dx/dt=f(t,x) и начальное условие x(t0) = x0. Требуется найти функцию x(t), удовлетворяющую как указанному уравнению, так и начальному условию.

Численное решение задачи Коши сводится к табулированию искомой функции.

График решения дифференциального уравнения называется интегральной кривой.

Геометрический смысл задачи:’=f(t,x) - тангенс угла наклона касательной к графику решения в точке (t, x) к оси ОХ, - угловой коэффициент (рис.1).

Рисунок 1. Геометрический смысл задачи Коши

Существование решения:

Если правая часть f(t,x) непрерывна в некоторой области R, определяемой неравенствами

|t - t0| < a ; |x - x0| < b

то существует, по меньшей мере, одно решение x = x(t), определённое в окрестности |t - x0| < h, где h - положительное число.

Это решение единственно, если в R выполнено условие Липшица

где N - некоторая постоянная (константа Липшица), зависящая, в общем случае, от a и b. Если f(x, y)имеет ограниченную производную  в R, то можно положить

N = max|| при .

. Разработка физической и математической модели задачи

При использовании численных методов выполняется замена отрезка [t0, T] - области непрерывного изменения аргумента t множеством , состоящего из конечного числа точек t0 < t1 < … < tn = T - сеткой.

При этом ti называют узлами сетки.

Во многих методах используются равномерные сетки с шагом

 

Задача Коши, определённая ранее на непрерывном отрезке [t0, T], заменяется её дискретным аналогом - системой уравнений, решая которую можно последовательно найти значения x1, x2, …, xn - приближённые значения функции в узлах сетки.

  (1)

Численное решение задачи Коши широко применяется в различных областях науки и техники, и число разработанных для него методов достаточно велико.

В данном случае будут использоваться одношаговые методы, в которых для нахождения следующей точки на кривой x = f(t) требуется информация лишь об одном предыдущем шаге. Одношаговыми являются метод Эйлера и методы Рунге - Кутта.

Применив вышеописанные знания на нашем примере, мы имеем:

дифференциальное уравнение первого порядка

x’ = f(t, x)


с начальным условием

(t0)= x0(1) = 16.

Выберем шаг h и введём обозначения:

ti = t0 + i.h и xi = x(ti) ,

где i = 0, 1, 2, …- узлы сетки,значение интегральной функции в узлах .

Для решения поставленной задачи методом Эйлера модифицированным:

При использовании модифицированного метода Эйлера шаг h делится на два отрезка.

Иллюстрации к решению приведены на рисунке 1.

Рисунок 1 - Метод Эйлера модифицированный

Проведем решение в несколько этапов.

Обозначим точки: A(ti, xi), C(ti+h/2, xi+h/2*f(ti,xi)) и B(ti+1, xi+1).

Через точку А проведем прямую под углом α, где

tgα = f(ti,xi)

На этой прямой найдем точку C(ti+h/2, xi+h/2*f(ti,xi)).


tgα1 = f(ti + h/2, xi + h/2 * f(ti,xi))

Через точку А проведем прямую, параллельную последней прямой.

Найдем точку В(ti+1, xi+1). Будем считать В(ti+1, xi+1) решением дифференциального уравнения при t=ti+1.

После проведения вычислений, получим формулу для определения значения xi+1:

+1 = xi + h* f(ti + h/2, xi + h/2 * f(ti,xi))

Модифицированный метод Эйлера дает меньшую погрешность. На рисунке 4 это хорошо видно. Так величина ε1 характеризует погрешность метода Эйлера, а ε - погрешность метода Эйлера модифицированного.

Блок-схема процедуры решения дифференциального уравнения методом Эйлера модифицированным приведена на рисунке 2.

(t, x) - заданная функция - должна быть описана отдельно.

Входные параметры: , TK - начальное и конечное значения независимой переменной;- значение x0 из начального условия x(t0) = x0;- шаг;

Выходные параметры: - массив значений искомого решения в узлах сетки.

Для решения поставленной задачи методом Рунге - Кутта:

Согласно методу Рунге - Кутта четвёртого порядка, последовательные значения xi искомой функции x определяются по формуле:

+1 = xi + ∆xi

где

∆xi = 1/6 * (k1 + 2*k2 + 2*k3 + k4),= 0, 1, 2, …

а числа k1(i), k2(i), k3(i), k4(i) на каждом шаге вычисляются по формулам:

k1 = h*f(ti, xi)= h*f(ti + h/2, xi + k1/2)= h*f(ti + h/2, xi + k2/2)

k4 = h*f(ti + h, xi + k3)

Это явный четырёхэтапный метод четвёртого порядка точности.

Методы Рунге - Кутта легко программируются и обладают значительной точностью и устойчивостью для широкого круга задач.

На рисунке 3 приведена блок-схема процедуры Runge(T0, TK, X0, h, X) для решения задачи Коши описанным выше методом Рунге - Кутта.

(x, y) - заданная функция - должна быть описана отдельно.

Входные параметры: , TK - начальное и конечное значения независимой переменной;- значение x0 из начального условия x(t0) = x0;- шаг;- количество итераций.

Выходные параметры: - массив значений искомого решения в узлах сетки;

. Разработка алгоритма в виде блок-схемы

На рисунке 4 приведена блок-схема алгоритма основной программы для решения задачи Коши и получения результатов с фиксированным количеством отрезков разбиения N. В основной программе происходит обращение к процедурам Eiler(T0, TK, X0, h, X) и Runge (T0, TK, X0, h, X), вычисляющей значения искомой функции xj в точках tj методами Эйлера модифицированным и Рунге - Кутта.

Исходными данными в данной задаче являются: , TK - начальное и конечное значения независимой переменной;- значение x0 из начального условия x(t0) = x0;- шаг.

Результаты работы программы выводятся в виде трех столбцов: - массив значений узлов сетки;- массив значений искомого решения в соответствующих узлах сетки, полученный при решении методом Эйлера модифицированным;- массив значений искомого решения в соответствующих узлах сетки, полученный при решении методом Рунге-Кутта.


. Разработка программы для ЭВМ

Листинг программы:

program zadacha;crt, graphABC;: array [0..11] of real;: array [0..11] of real;: array [0..11] of real;, xnull, ynull, x, y, i, t0, tk, x0, N, a, b : integer;: real;Eiler(t0,tk,x0,N:integer; h:real; var x : array [0..11] of real);, f2 : real;[0] := t0;[N] := tk;[0] := x0;i:= 0 to N do[i] := t[0] + i*h;:= 2*ln(t[i])*sqrt(x[i]);:= 2*ln(t[i]+h/2)*sqrt(x[i]+h/2*f1);[i+1] := x[i] + h*f2;;;Runge(t0,tk,x0,N:integer; h:real; var x : array [0..11] of real);, k2, k3, k4, f, k : real;[0] := t0;[N] := tk;[0] := x0;i:= 0 to N do[i] := t[0] + i*h;:= 2*ln(t[i])*sqrt(x[i]);:= h*f;:= 2*ln(t[i]+h/2)*sqrt(x[i] + k1/2);:= h*f;:= 2*ln(t[i]+h/2)*sqrt(x[i] + k2/2);:= h*f;:= 2*ln(t[i]+h)*sqrt(x[i] + k3);:= h*f;:= (k1 + 2*k2 + 2*k3 + k4)/6;[i+1] := x[i]+k;;;;

// входные параметры //:= 1;:= 2;:= 16;:= 0.1;:= 10;

// функция x:= 2*ln(t)*sqrt(x) //(t0,tk,x0,N,h,x1);(t0,tk,x0,N,h,x2);

writeln(‘Таблица результатов:’);(‘t’:9);

write(‘x1’:9);(‘x2’:10);i:= 0 to N do(t[i]:10:2);(x1[i]:10:2);(x2[i]:10:2);;();:= 290; // начало координат:= 220;(xnull,ynull,xnull+300,ynull);(xnull,ynull-214,xnull,ynull);(xnull,ynull,xnull-30,ynull);(xnull,ynull,xnull,ynull+30);(xnull+300,ynull,xnull+290,ynull-7);(xnull+300,ynull,xnull+290,ynull+7);(xnull,ynull-214,xnull+7,ynull-204);(xnull,ynull-214,xnull-7,ynull-204);(xnull+300,ynull+10, ‘t’);(xnull-23,ynull-214, ‘x’);:= 3;(clRed);i:= 0 to (N-1) do:= round(t[i]*10)*10;:= round(x1[i]*10);(x+xnull,ynull-y);(x+xnull,ynull-y,r);:= round(t[i+1]*10)*10;:= round(x1[i+1]*10);(a+xnull, ynull-b);(a+xnull,ynull-b,r);;(xnull+240,ynull-50,xnull+270,ynull-50);(xnull+280,ynull-60, ‘x1’);:= 3;i:= 0 to (N-1) do(clRed);:= round(t[i]*10)*10;:= round(x1[i]*10);(x+xnull,ynull-y);(x+xnull,ynull-y,r);:= round(t[i+1]*10)*10;:= round(x1[i+1]*10);(a+xnull, ynull-b);(a+xnull,ynull-b,r);(i=0) then(clBlack);(x+xnull,ynull, r);(xnull,ynull-y, r);(x+xnull-7,ynull+5, ‘t0’);(xnull-21,ynull-y-7, ‘x0’);;(i=(N-1)) then(clBlack);(x+xnull,ynull, r);(xnull,ynull-y, r);(x+xnull-7,ynull+5, ‘tk’);(xnull-21,ynull-y-7, ‘xk’);;;(clRed);(xnull+240,ynull-50,xnull+270,ynull-50);(xnull+280,ynull-60, ‘x1’);();:= 3;i:= 0 to (N-1) do(clGreen);:= round(t[i]*10)*10;:= round(x2[i]*10);(x+xnull,ynull-y);(x+xnull,ynull-y,r);:= round(t[i+1]*10)*10;:= round(x2[i+1]*10);(a+xnull, ynull-b);(a+xnull,ynull-b,r);(i=0) then(clBlack);(x+xnull,ynull, r);(xnull,ynull-y, r);(x+xnull-7,ynull+5, ‘t0’);(xnull-21,ynull-y-7, ‘x0’);;(i=(N-1)) then(clBlack);(x+xnull,ynull, r);(xnull,ynull-y, r);(x+xnull-7,ynull+5, ‘tk’);(xnull-21,ynull-y-7, ‘xk’);;;(clGreen);(xnull+240,ynull-30,xnull+270,ynull-30);(xnull+280,ynull-40, ‘x2’);.

6. Работа по программе и обработка результатов

Результат работы программы:

Шаг 1. Нахождение значений функции разными методами.

моделирование уравнение алгоритм программа

Шаг 2. Построение графика функции для x1


Шаг 3. Построение графика функции для x2


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

Заключение

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

В ходе выполнения данной курсовой работы были рассмотрены методы решения задачи Коши для дифференциального уравнения 1 - го порядка на отрезке [tо, tк] с шагом h и начальным условием x(tо)=xо, разработаны алгоритмы решения, смоделирован процесс движения материальной точки методами Эйлера модифицированным и Рунге-Кутта.

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

Литература

Демидович Б.П., Марон И.А., Шувалова Э.З., Численные методы анализа. - М.: Физматгиз, 1963.-400 с.

Иванова Т.П., Пухова Г.В. Вычислительная математика и программирование. М.: Просвещение, 1978. - 320 с.

Немнюгин С.А. TurboPascal. Практикум - СПб.: Питер, 2005. - 268 с.

Немнюгин С.А. TurboPascal. Программирование на языке высокого уровня: Учебник для вузов. - СПб.: Питер, 2005. - 544 с.

Плис А.И., Сливина Н.А. Лабораторный практикум по высшей математике: Учеб. пособие для втузов. - М.: Высшая школа, 1983. - 208 с.

Похожие работы на - Моделирование математического уравнения движения материальной точки

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!