close

Вход

Забыли?

вход по аккаунту

?

Otchet laba 1 (2)

код для вставкиСкачать
Министерство общего и профессионального образования
Российской Федерации
Тверской государственный технический университет
Кафедра электронных вычислительных машин
Отчет по лабораторной работе №1
Моделирование динамических систем.
Численное интегрирование дифференциальных уравнений.
Вариант 1
Принял: Тулупова Т. В.
Выполнил: Студент Балахонов С.С.
Группа ИВТ 1104
2013г.
Цель работы:
Знакомство с простейшими численными методами интегрирования обыкновенных дифференциальных уравнений.
Содержание работы:
1. Изучение модифицированного метода Эйлера интегрирования дифференциальных уравнений первого порядка и способа достижения требуемой точности получаемого приближенного решения.
2. Составление блок-схемы алгоритма решения поставленной задачи, программы, получение результатов.
Постановка задачи:
1. Найти численное решение дифференциального уравнения y' = f(x,y)
на заданном отрезке [a,b] при начальном условии у(а) = у0, обеспечив получение результатов на каждом шаге с заданной точностью 0 и беря начальный шаг h0 = (b-a)/10, а =0,01.
2. Значения величин а, b, у0 и вид f(x,y) взять из таблицы.
Код программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace laba1
{
class Program
{
static double myfunc(double x, double y)
{
return (2*y*Math.Sqrt(x*x));
}
static void Main(string[] args)
{
double a, b, y0, n, h, x, y1, T, t, k;
int i;
a = 1;
b = 2.73;
y0 = 1;
n = 100;
h = (b - a) / n;
x = a;
t = a;
k = 1;
T = 20 - k;
string path = @"E:\Func_1.txt";
string path2 = @"E:\Func_2.txt";
if (System.IO.File.Exists(path))
{
try
{
System.IO.File.Delete(path);
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
return;
}
}
if (System.IO.File.Exists(path2))
{
try
{
System.IO.File.Delete(path2);
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
return;
}
}
using (System.IO.StreamWriter file = new System.IO.StreamWriter(path, true))
{
for (i = 0; i <= n; i++)
{
y1 = y0 + myfunc(x, y0) * h;
x = x + h;
Console.WriteLine("x= {0:F2} y= {1:F7}", x, y1);
file.WriteLine("x= {0:F2} y= {1:F7} ", x, y1);
}
}
Console.WriteLine("\n");
using (System.IO.StreamWriter file = new System.IO.StreamWriter(path2, true))
{
for (i = 0; i <= n - 1; i++)
{
y1 = y0 + t * ((k - y0) / T);
y0 = y1;
t = t + h;
Console.WriteLine("t= {0:F2} y= {1:F7}", t, y1);
file.WriteLine("t= {0:F2} y= {1:F7} ", t, y1);
}
}
}
}
}
Результаты выполнения программы
График для 2*y* Sqrt(x*x)
График переходного процесса для инерционного звена первого порядка с передаточной функцией.
Документ
Категория
Рефераты
Просмотров
79
Размер файла
140 Кб
Теги
laba, otchet
1/--страниц
Пожаловаться на содержимое документа