Задание - Реализация численного интегрирования по методу Верле на языке программирования С++
Формулировка задания
Написать программу реализации скоростной формы алгоритма Верле.
Постановка задача
Выходные данные: позиция точки уравнения движения (). Значения по модулю данной переменной находятся в пределах от
до
.
Входные данные: начальная позиция точки (), начальная скорость точки (
), изменение времени (
) и начальное ускорение точки (
).
Главная функция: расчет позиции точки уравнения движения .
Диалог:
расчет позиции точки уравнения движения
Введите = 3
Введите = 4
Введите = 2
Введите = 2
Позиция точки уравнения движения
Тестовый пример:
= 3;
= 4;
= 2;
= 2
= 3+4
2+
= 3+8+2=13.
Имя |
Тип |
Описание |
|
double |
Начальная позиция точки |
|
double |
Начальная скорость точки |
|
double |
Изменение времени |
|
double |
Начальное ускорение точки |
|
double |
Позиция точки в данный момент времени |
Далее составим алгоритм написания программы.
Словесный алгоритм:
Рассчитать позицию точки уравнения движения в данный (текущий) момент времени
1) Ввести следующие данные: ,
,
,
2) Рассчитать позицию точки уравнения движения в данный (текущий) момент времени: .
Далее составим блок-схему написания нашей программы:
ОКОНЧАНИЕ
После составления словесного алгоритма и блок-схемы программы, приступим к реализации численного интегрирования по методу Верле на языке программирования С++. Код нашей программы будет иметь следующий вид:
#include <iostream>
#include <conio. h>
#include <math. h>
using namespace std;
int main ()
{ double v0, x0, deltaT, a0, x1;
cout << "vvedite x0: ";
cin>> x0;
cout << "vvedite v0: ";
cin >> v0;
cout << "vvedite deltaT: ";
cin >> deltaT;
cout << "vvedite a0: ";
cin >> a0;
x1=x0+v0*deltaT+0.5*a0*(deltaT);
cout << "otvet: " << x1;
_getch ();
}
Отладив и скомпилировав данный код программы, а далее введя запрашиваемые программой данные, мы получим на экране монитора следующее:
Расчеты данной программы совпадают с нашими расчетами в тестовом примере, следовательно программа «рабочая», т. е. работает без ошибок.