Моделирование динамических систем

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

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 11.02.2016
Размер файла 290,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Тверской государственный технический университет»

Кафедра электронных вычислительных машин

ЛАБОРАТОРНАЯ РАБОТА

по дисциплине: «Моделирование»

Тема работы: «Моделирование динамических систем. Численное интегрирование дифференциальных уравнений»

Выполнила:

Воронков Р.В.

Проверил: к.т.н.,

Чернышев О.Л.

Тверь 2016

Цель работы

Знакомство с простейшими численными методами интегрирования обыкновенных дифференциальных уравнений.

Содержание работы

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

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

Вариант задания

№ варианта

f(x, y)

а

b

y0

3

,

2,7

4

4

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

Найти численное решение дифференциального уравнения на заданном отрезке при начальном условии . Обеспечить получение результатов на каждом шаге с заданной точностью и беря начальный шаг , а . Значения величин и вид выбраны для варианта №10.

Получить график переходного процесса для инерционного звена первого порядка со следующей передаточной функцией.

,

где параметр - равен значению номера студента в группе (№15), а Т равен разности числа 20 и номера студента в группе (). Таким образом, , а .

Выполнение работы

Пусть требуется найти решение уравнения (1), удовлетворяющее начальному условию .

,

Выберем приращения равные так, чтобы . Далее обозначим , , где

В качестве приближенного решения (1) примем ломанную Эйлера (2).

,

Опишем правило, по которому будем выбирать величину приращения , а также обеспечивать требуемую точность решения на -том «шаге».

В узле возьмем в качестве шага , где - заданное значение. Вычислим в узлеприближенные значения решения и по формуле Эйлера (2), соответственно, используя шаг и .

Если погрешность , то примем в качестве значения в узле величину .

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

Далее осуществляется расчет следующей точки ломаной Эйлера. Для следующего узла получаем значение , исходя из , а величину шага выбираем на основании ее предыдущего значения:

а) если - предыдущий шаг удваивается;

б) если - предыдущий шаг остается.

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

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

Для представления результатов целесообразно построить график с помощью ЭВМ. Для построения графика необходимо предусмотреть выдачу на печать не более 30 - 50 координат , , автоматически.

После получения решения для заданного уравнения, целесообразно получить график переходного процесса для инерционного звена первого порядка с передаточной функцией:

,

где параметр - равен значению номера студента в группе (№15), а - разности между числом 20 и номером студента в группе (т.е. ). Таким образом, , .

Для выполнения поставленных задач - решение исходного уравнения модифицированным методом Эйлера и получение графика переходного процесса передаточной функции, были реализованы консольные приложения на языке java на платформе NetBeans IDE.

модифицированный интегрирование дифференциальный уравнение

График точностью

Представленная программа записывает выходные данные в файл График переходного процесса для инерционного звена первого порядка с передаточной функцией ; , при .

График переходного процесса

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

Листинг кода программы 1 с комментарием

package equationeyler1;

import java.io.File;

import java.io.IOException;

import jxl.Workbook;

import jxl.write.Number;

import jxl.write.NumberFormat;

import jxl.write.WritableCellFormat;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

public class EquationEyler {

private static WritableWorkbook workbook;

private static WritableSheet sheet;

private static float A, B, Y1, Y2, E, H;

private static float X, Y;

private static float H1, H2;

private static int SH = 0;

public static void main(String[] args) throws RowsExceededException,

WriteException, IOException {

createWorkbookSheet();

initializeVariable();

calculationValues();

}

private static void initializeVariable() {

System.out.print("Инициализация входных параметров системы...");

//задаем исходные значения, согласно варианту №10

A = 2,7;

B = 4;

E = (float) 0.01;

H = (B - A) / 10000;

X = A;

Y = (float) 4;

H1 = H;

H2 = H / 2;

System.out.println("Параметры заданы!");

}

private static void calculationValues() throws WriteException, IOException {

while (X <= B && SH < 40) {

SH++;

// находим y' по формуле Эйлера

Y1 = Y + mathFunction(X, Y, H1);

// находим y'' по формуле Эйлера

Y2 = Y + mathFunction(X, Y, H2);

while (Math.abs(Y2 - Y1) >= E) /* Цикл пока b > = e */

{

H1 = H1 / 2;

H2 = H2 / 2;

// повторяем нахождение y' по формуле Эйлера

Y1 = Y + mathFunction(X, Y, H1);

// повторяем нахождение y'' по формуле Эйлера

Y2 = Y + mathFunction(X, Y, H2);

}

addRowValue(SH, X, Y);

// примем в качестве значения y в узле x величину y''

Y = Y2;

if (Math.abs(Y2 - Y1) < E / 4) {

H1 = H1 * 2;

H2 = H2 * 2;

}

X = X + H1; // следующее значение x равно x + h1

}

saveFile();

}

private static float mathFunction(float X, float Y, float H) {

return (float) ((1+Y)/(1-X))*H; //уравнение заданной функции

}

private static void createWorkbookSheet() {

System.out.print("Создание нового файла...");

File excelFile = new File("Laba1");

System.out.println("Файл создан!");

try {

workbook = Workbook.createWorkbook(excelFile);

System.out.print("Создание рабочего листа...");

sheet = workbook.createSheet("export", 0);

} catch (IOException e) {

e.printStackTrace();

}

System.out.println(" Рабочий лист создан!");

}

private static void addRowValue(int pos, float X, float Y)

throws WriteException {

//зададим шрифт

WritableFont numberFont = new WritableFont(WritableFont.ARIAL);

//зададим фомат данных

WritableCellFormat numberFormat = new WritableCellFormat(numberFont,

new NumberFormat("#0.00000"));

//зададим столбцы для каждой из осей

sheet.addCell(new Number(0, pos, X, numberFormat));

sheet.addCell(new Number(1, pos, Y, numberFormat));

}

private static void saveFile() throws IOException, WriteException {

System.out.print("Записываем данные на лист, сохраняем файл...");

workbook.write();

workbook.close();

System.out.println(" Готово!");

}

}

Блок-схема алгоритма получения графика переходного процесса для инерционного звена первого порядка с передаточной функцией

Листинг кода программы 2 с комментарием

package TransfFunction;

import java.io.File;

import java.io.IOException;

import jxl.Workbook;

import jxl.write.Number;

import jxl.write.NumberFormat;

import jxl.write.WritableCellFormat;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

public class TransfFunc1 {

private static WritableWorkbook workbook;

private static WritableSheet sheet;

private static double k,T;

private static int tt, i;

private static double E,h;

public static void main(String[] args) throws RowsExceededException,

WriteException, IOException {

createWorkbookSheet();

initializeVariable();

calculationValues();

}

private static void initializeVariable() {

System.out.print("Инициализация входных параметров системы...");

//задаем исходные значения, согласно варианту №3

k = 15;

T = 5;

t = 20;

System.out.println("Параметры заданы!");

}

private static void calculationValues() throws WriteException, IOException {

for (i = 0; i <= tt; i++) {

E = Math.pow(Math.E, -1 * (i / T));

h = k * (1 - E); //формула передаточной функции

addRowValue(i, i, h);

}

saveFile();

}

private static void createWorkbookSheet() {

System.out.print("Создание нового файла...");

File excelFile = new File("Laba2");

System.out.println("Файл создан!");

try {

workbook = Workbook.createWorkbook(excelFile);

System.out.print("Создание рабочего листа...");

sheet = workbook.createSheet("export", 0);

} catch (IOException e) {

e.printStackTrace();

}

System.out.println(" Рабочий лист создан!");

}

private static void addRowValue(int pos, int X, double Y)

throws WriteException {

//зададим шрифт

WritableFont numberFont = new WritableFont(WritableFont.ARIAL);

//зададим формат данных

WritableCellFormat numberFormat = new WritableCellFormat(numberFont,

new NumberFormat("#0.00000"));

//зададим столбцы для каждой из осей

sheet.addCell(new Number(0, pos, X, numberFormat));

sheet.addCell(new Number(1, pos, Y, numberFormat));

}

private static void saveFile() throws IOException, WriteException {

System.out.print("Записываем данные на лист, сохраняем файл...");

workbook.write();

workbook.close();

System.out.println(" Готово!");

}

}

Размещено на Allbest.ru

...

Подобные документы

  • Обзор методов решения в Excel. Рекурентные формулы метода Эйлера. Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка. Метод Эйлера с шагом h/2. Решение дифференциальных уравнений с помощью Mathcad. Модифицированный метод Эйлера.

    курсовая работа [580,1 K], добавлен 18.01.2011

  • Принцип и значение метода Эйлера для расчета дифференциальных уравнений. Анализ его геометрического смысла. Улучшение метода за счет аппроксимации производной. Разработка блок-схем и программы на языке Turbo Pascal для проверки методов интегрирования.

    курсовая работа [385,7 K], добавлен 15.06.2013

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

    курсовая работа [532,9 K], добавлен 14.01.2014

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

    курсовая работа [137,9 K], добавлен 07.03.2013

  • Обыкновенное дифференциальное уравнение первого порядка. Задача Коши, суть метода Рунге-Кутта. Выбор среды разработки. Программная реализация метода Рунге-Кутта 4-го порядка. Определение порядка точности метода. Применение языка программирования C++.

    курсовая работа [163,4 K], добавлен 16.05.2016

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

    курсовая работа [41,3 K], добавлен 15.12.2012

  • Структурно-информационный анализ методов моделирования динамических систем. Математическое моделирование. Численные методы решения систем дифференциальных уравнений. Разработка структуры програмного комплекса для анализа динамики механических систем.

    дипломная работа [1,1 M], добавлен 14.05.2010

  • Суть метода Рунге-Кутта и его свойства. Решение дифференциальных уравнений первого порядка. Вычислительный блок Given/Odesolve. Встроенные функции rkfixed, Rkadapt, Bulstoer. Решения линейных алгебраических уравнений в среде MathCad и Microsoft Excel.

    курсовая работа [1,1 M], добавлен 02.06.2014

  • Изучение численных методов решения нелинейных уравнений. Построение годографа АФЧХ, графиков АЧХ и ФЧХ с указанием частот. Практическое изучение численных методов интегрирования дифференциальных уравнений высокого порядка, метод Рунге-Кутта 5-го порядка.

    курсовая работа [398,3 K], добавлен 16.06.2009

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

    курсовая работа [581,0 K], добавлен 15.06.2013

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

    курсовая работа [1,9 M], добавлен 05.01.2013

  • Численный метод для решения однородного дифференциального уравнения первого порядка методом Эйлера. Решение систем дифференциальных уравнений методом Рунге–Кутта. Решение краевой задачи. Уравнения параболического типа, а также Лапласа и Пуассона.

    курсовая работа [163,5 K], добавлен 27.05.2013

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

    курсовая работа [246,8 K], добавлен 17.06.2013

  • Математическое обоснование метода решения задачи: определенный интеграл, квадратурная формула Симпсона (формула парабол). Словесное описание алгоритма и составление его блок-схемы. Выбор языка программирования. Текст программы решения задачи, ее листинг.

    курсовая работа [593,6 K], добавлен 09.07.2012

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

    курсовая работа [226,6 K], добавлен 05.04.2013

  • Программа вычисления интеграла методом прямоугольников. Решение задачи Коши для дифференциальных уравнений. Модифицированный метод Эйлера. Методы решения краевой задачи для обыкновенного дифференциального уравнения. Задачи линейного программирования.

    методичка [85,2 K], добавлен 18.12.2014

  • Решение дифференциальных уравнений первого порядка. Варианты методов Рунге-Кутта различных порядков. Основные методы численного решения задачи Коши. Повышение точности вычислений и итерационный метод уточнения. Дискретная числовая последовательность.

    лабораторная работа [33,3 K], добавлен 14.05.2012

  • Структура языка Паскаль, встроенные процедуры и функции. Составление алгоритма решения уравнения, описывающего работу кривошипно-шатунного механизма, с помошью метода итерации, метода Гаусса и метода Зейделя. Блок-схемы алгоритмов и текст программы.

    курсовая работа [64,6 K], добавлен 07.05.2011

  • Понятие определителя матрицы, математические и алгоритмические основы его расчета, функциональные модели, блок-схемы и программная реализация. Сущность метода Гаусса для решения систем линейных алгебраических уравнений и вычисления определителя матрицы.

    контрольная работа [455,2 K], добавлен 18.01.2010

  • Математическая постановка задачи. Алгоритм решения системы обыкновенных дифференциальных уравнений методом Эйлера. Параметры программы, ее логическая структура и функциональное назначение. Анализ входных и выходных данных. Описание тестовых задач.

    курсовая работа [38,0 K], добавлен 26.04.2011

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