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

Автор работы: Пользователь скрыл имя, 26 Мая 2015 в 22:40, курсовая работа

Описание работы

Существует множество технических систем и технологических процессов, характеристики которых непрерывно меняются со временем t. Такие явления обычно подчиняются физическим законам, которые формулируются в виде дифференциальных уравнений.
Дифференциальными называются уравнения, содержащие одну или несколько производных. Лишь очень немногие из них удаётся решить без помощи вычислительной техники. Поэтому численные методы решения дифференциальных уравнений играют важную роль в практике инженерных расчётов.

Файлы: 1 файл

normy_kursach.docx

— 722.49 Кб (Скачать файл)


 


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


 


                             Yi+1

 



 
 
 
                                                               конец


 

Рисунок 7 – Блок схема вычисления функции по методу Эйлера модифицированного

         

 

 
 
 
 
 
 

 

 

 

 

 
 
 
 
 
 
                                         Виды форм проекта




 



 

 

 

 

 

 

 

 

 

 

 

 


 

 



                                 
 
 
                                Рисунок 8. Форма проекта 
 
 
 


 

 

 

 

 

 

 

 

 

 

 

 
Рисунок 9. Результат работы программы

 

5. Решение задачи в MathCad

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 10 - Решение задачи в MathCad

 

 

Заключение

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение

Листинг программы на языке Visual Basic

Public Class Form1

    Dim x() As Single

    Dim y1() As Single

    Dim y2() As Single

    Dim ob() As Single

    Private x0 As Single

    Private y0 As Single

    Private xk As Single

    Private h As Single

    Private i, n As Integer

    Private Function f(ByVal x As Single, ByVal y As Single)

        f = (3 * y) / x

    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        x0 = Val(TextBox1.Text)

        xk = Val(TextBox2.Text)

        h = Val(TextBox3.Text)

        y0 = Val(TextBox4.Text)

        Dim c As Single = y0 / ((x0) ^ 3)

        n = Math.Round((xk - x0) / h)

        ReDim x(n)

        ReDim y1(n)

        ReDim y2(n)

        ReDim ob(n)

        DataGridView1.RowCount = n + 1

        y1(0) = y0

        y2(0) = y0

        x(0) = x0

        ob(0) = c * (x(i)) ^ 3

        i = 0

        DataGridView1.Item(0, i).Value = i

        DataGridView1.Item(1, i).Value = Str(x(i))

        DataGridView1.Item(2, i).Value = Str(y1(i))

        DataGridView1.Item(3, i).Value = Str(y2(i))

        DataGridView1.Item(4, i).Value = Str(ob(i))

        For i As Integer = 1 To n

            x(i) = x0 + i * h

            y1(i) = y1(i - 1) + h * f(x(i - 1), y1(i - 1))

            y2(i) = y2(i - 1) + h * f(x(i - 1) + h / 2, y2(i - 1) + (h / 2) * f(x(i - 1), y2(i - 1)))

            ob(i) = c * (x(i)) ^ 3

            DataGridView1.Item(0, i).Value = Str(i)

            DataGridView1.Item(1, i).Value = Str(x(i))

            DataGridView1.Item(2, i).Value = Str(y1(i))

            DataGridView1.Item(3, i).Value = Str(y2(i))

            DataGridView1.Item(4, i).Value = Str(ob(i))

        Next i

        For i As Integer = 0 To n

            Chart1.Series("Series1").Points.AddXY(x(i), y1(i))

            Chart1.Series("Series2").Points.AddXY(x(i), y2(i))

            Chart1.Series("Series3").Points.AddXY(x(i), ob(i))

        Next i

    End Sub

 

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

 

    End Sub  
End Class


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