Автор: Пользователь скрыл имя, 03 Апреля 2012 в 14:37, задача
Решение обыкновенных дифференциальных уравнений методом Рунге-Кутты.
1. Задание для исследования
2. Подробное описание задачи и метод ее решения
2.1 Подробное описание
2.2 Метод решения
3. Результаты исследования
4. Сравнение результатов
Приложение
1 Описание применения
1.1 Техническое задание
1.2 Назначение программы
1.3 Условие применения
2 Программа и методика испытаний
2.1 Объект испытаний
2.2 Цель испытаний
2.3 Требования к программе
2.4 Требования к программной документации
2.5 Средства и порядок испытаний
2.6 Методы испытаний
3 Руководство пользователя
3.1 Назначение программы
3.2 Условия и характеристики выполнения программы
3.3 Выполнение программы
3.4 Входные и выходные данные
3.5 Сборка программы
4 Описание программы
4.1 Функциональное назначение
4.2 Используемые технические средства
4.3 Вызов и загрузка
5 Текст программы
Содержание
1. Задание для исследования 4
2. Подробное описание задачи и метод ее решения 5
2.1 Подробное описание 4
2.2 Метод решения 5
3. Результаты исследования 6
4. Сравнение результатов 12
Приложение 14
1 Описание применения 14
1.1 Техническое задание 14
1.2 Назначение программы 14
1.3 Условие применения 14
2 Программа и методика испытаний 16
2.1 Объект испытаний 16
2.2 Цель испытаний 16
2.3 Требования к программе 16
2.4 Требования к программной документации 16
2.5 Средства и порядок испытаний 16
2.6 Методы испытаний 16
3 Руководство пользователя 18
3.1 Назначение программы 18
3.2 Условия и характеристики выполнения программы 18
3.3 Выполнение программы 18
3.4 Входные и выходные данные 18
3.5 Сборка программы 19
4 Описание программы 20
4.1 Функциональное назначение 20
4.2 Используемые технические средства 20
4.3 Вызов и загрузка 20
5 Текст программы 21
Исследовать решение обыкновенных дифференциальных уравнений методом Рунге-Кутты.
Метод этот пригоден для решения как одиночных дифференциальных уравнений первого порядка, так и систем уравнений первого порядка.
Пусть есть уравнение вида
с начальным условием
Предполагается, что отрезок [a,b], на котором будет находиться решение этого уравнения, разбит на n равных частей системой точек (сеткой).
xi=x0+ih (i=0,1…..n), x0=a, xn=b,
На этой сетке следует найти «развитие» процесса y(x), т.е. решить так называемую задачу Коши.
Применить этот метод для следующей задачи:
Тело с начальной массой m движется под действием постоянной силы F, при этом масса тела уменьшается со скоростью m’. Сопротивление воздуха пропорционально скорости тела, коэффициент пропорциональности k задан. Соответствующее дифференциальное уравнение, описывающее скорость перемещения тела v(t) имеет вид:
Обозначим через yi приближенное значение искомого решения в точке xi. По методу Рунге-Кутты вычисление приближенного значения yi+1 в следующей точке xi+1=xi+h производится по формулам
yi+1=yi+∆yi,
∆yi,=(K1i+ K2i +K3i + K4i)
где
K1i =hf(xi, yi),
K2i = hf(xi+h/2, yi+ K1i/2),
K3i= hf(xi+h/2, yi+ K2i/2)
K4i= hf(xi+h/2, yi+ K3i/2)
Задача:
Фактически решение этой задачи приближенно описывает движение ракеты, расходующей в полете топливо.
Допустим, что v(0)=0.
Тогда уравнение
имеет следующее аналитическое решение:
.
Численное решение этого уравнения вычисляется и сравнивается со значениями, полученными в результате работы программы.
F=1000H m=200 кг m’=1 кг/сек k=2 t0=0 сек V0=0 м/сек
b=50 n=50
V1(t) – результаты, полученные с помощью написанной программы
V2(t) – результаты, полученные способом, опис. в п. 3.1
V2(t) – результаты, полученные способом, опис. в п. 3.2
F=1000H
m=200 кг
m’=1 кг/сек
k=2
t0=0 сек
V0=0 м/сек
b=50
n=25
F=500H
m=150 кг
m’=2 кг/сек k=1
t0=1 сек V0=1м/сек b=20 n=20
F=500H
m=150 кг
m’=2 кг/сек
k=1
t0=1 сек
V0=1м/сек
b=20
n=5
В
данной работе был исследован метод
Рунге-Кутты четвертого порядка
для решения дифференциальных уравнений.
Для этого была написана программа,
с помощью которой можно
При
анализе результатов стоит
Так
же стоит отметить, что метод Рунге-Кутты
достаточно прост для реализации
на языках программирования, что, несомненно,
можно назвать его
Составить программу решения методом Рунге-Кутты уравнения вида y’=f(x,y)
с начальным условием
Исследование провести на следующем уравнении:
Данная программа
Программа была отлажена и проверена на персональном компьютере c процессором AMD Athlon(tm) 64 X2 Dual Core Processor 4000+, работающем под управлением операционной системы Windows 7 Ultimate, 1 Гб ОЗУ. На других вычислительных установках программа не проверялась.
Для выполнения программы достаточно вычислительной установки типа PC с P2-400, 128MB RAM, 16MB 3D Card , оснащенной любой из следующих операционных систем: Windows NT и выше.
Для компиляции исходного кода в исполняемый файл необходим компилятор MS Visual Studio версии 2005 и выше, совместимость с другими компиляторами не гарантируется.
Объектом испытаний является исполняемый модуль программы Runge_Kutt. Программа Runge_Kutt применяется для исследования решения задачи Коши на заданном дифференциальном уравнении первого порядка с заданной точностью.
Целью испытаний является проверка точности работы программы на конкретной вычислительной установке.
Во время испытаний следует справильное нахождение корней уравнения в каждом из методов.
Для испытания необходимо:
1) Программа Runge_Kutt;
2) ЭВМ, соответствующую указанным выше техническим требованиям.
Необходимо запустить
Тестирование работы написанной
программы проводилось с
Приведем описание стандартной функции rkfixed с указанием параметров функции.
rkfixed(y, x1, x2, p, D)
Аргументы функции:
y – вектор начальных условий из k элементов (k – количество уравнений в системе);
x1 и x2 – левая и правая границы интервала, на котором ищется решение ОДУ или системы ОДУ;
p – число точек внутри интервала (x1, x2), в которых ищется решение;
D – вектор, состоящий из k-элементов, который содержит первую производную искомой функции или первые производные искомых функций, если речь идет о решении системы.
Для поставленной задачи запись в среде MathCad в общем виде будет выглядеть следующим образом:
Аналитическое решение исходного уравнения имеет вид:
Приведем пример вычисления для следующих исходных данных:
F=1000H; m=200кг; m1=1кг/сек; k=2
Программа предназначена для нахождения корней уравнений, с заданной точностью и указанным методом.
Программа была отлажена и проверена на персональном компьютере c процессором AMD Athlon(tm) 64 X2 Dual Core Processor 4000+, работающем под управлением операционной системы Windows 7 Ultimate, ОЗУ 1Гб. На других вычислительных установках программа не проверялась.
Для выполнения программы достаточно вычислительной установки типа PC с P2-400, 128MB RAM, 16MB 3D Card , оснащенной любой из следующих операционных систем: Windows NT и выше.
Для выполнения программы Runge_Kutt необходимо открыть директорию, в которой находится программа, и использовать (двойной или одиночный клик, в зависимости от настроек ОС) для запуска файл Runge_Kutt.exe. После чего должна запуститься данная программа.
Входные данные поступают с клавиатуры. После ввода требуемой величины необходимо нажать Enter. Входными данными являются:
-Сила, действующая на тело
-Масса тела
-Скорость изменения массы
-Начальная скорость тела,
-Время начала отсчета,
-Правая граница интервала, на котором ищется решение уравнения
-Количество отрезков на интервале, на котором ищется решение
Пример входных данных:
Выходными данными является файл в программе MS Excel, где в свою очередь строятся графики.
Сборка программы
Программа написана на языке С++ и является консольным приложением.
Программа позволяет получить решение вышеуказанного уравнения при введенных с клавиатуры параметрах:
-Сила, действующая на тело
-Масса тела
-Скорость изменения массы
-Начальная скорость тела,
-Время начала отсчета,
-Правая граница интервала, на котором ищется решение уравнения
-Количество отрезков на интервале, на котором ищется решение
Для выполнения программы достаточно вычислительной установки типа PC с P2-400, 128MB RAM, 16MB 3D Card , оснащенной любой из следующих операционных систем: Windows NT и выше.
Программа Runge_Kutt предназначена для нахождения корней уравнений.
Программа может значительно сократить время расчета, а также построения зависимостей.
Для выполнения программы достаточно вычислительной установки типа PC с P2-400, 128MB RAM, 16MB 3D Card , оснащенной любой из следующих операционных систем: Windows NT и выше.
Для запуска программы Runge_Kutt необходимо открыть директорию, в которой находится программа, и использовать (двойной или одиночный клик, в зависимости от настроек ОС) для запуска файл Runge_Kutt.exe. После чего должна запуститься данная программа.
// runge_kutta.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <locale.h>
#include "iostream"
using namespace std;
float f(float x, float y, int F, int k, int m, int m1, int v0)
{
float Fr;
Fr=(F-k*y)/(m-x*m1);
return Fr;
}
void main()
{ setlocale( LC_ALL, "Russian" );
float x[1000], y[1000], d, K1, K2,K3,K4;
double h,b,t,n;
int v0, k, m, m1, F, i;
printf("Введите начальную скорость V(0) ");
cin>>v0;
printf("Введите коэфициент k ");
cin>>k;
printf("Введите время t0 ");
cin>>t;
Информация о работе Численное нахождение корня уравнения методом Рунге-Кутта