У вас вопросы?
У нас ответы:) SamZan.net

Задание 3 Вариант 11 Постановка задачи

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.3.2025

  1.  

Чепилов Дмитрий  Гр.6208          Задание #3, Вариант #11

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

Решить задачу Коши для обыкновенного дифференциального уравнения. Дифференциальное уравнение имеет вид , где  – производная, а  –заданная функция. Решить задачу Коши – значить найти функцию , удовлетворяющую начальному условию  

Заданы следующие уравнение и начальное условие:

  

  1.  Расчётные формулы.

Численное решение системы :

Выберем следующие начальные условия  , . Теперь вычислим константу :

Отсюда получим, что   и тогда

  1.  Метод Эйлера.

Численное решение системы  вычисляется по следующей формуле:

  

где функция  – производная из уравнения .

  1.  Метод Эйлера-Коши.

Численное решение системы  вычисляется в два этапа по следующим формулам:

  

где функция  – производная из уравнения .

  1.  Текст программы.

          Программа написана на языке программирования C# , в среде программирования Microsoft Visual Studio .NET 2005.

using System;

using System.Collections.Generic;

using System.Text;

namespace Lab3_Dif.Yr

{

   class Program

   {

       static float x0 = 2, y0 = 0;

       static float Numerical_Solution(float x)

       {

           return (x * x / 2 - 2) * (float)Math.Log(x);

       }

       static float F(float x, float y)

       {

           float temp = x * (float)Math.Log(x);

           return temp + y / temp;

       }

       static float Eiler(int N)

       {

           float x, y, y_prev=y0, error, max_error=0;

           float h=(float) 1/N;

           Console.WriteLine();

           Console.WriteLine("При N="+N+", шаг h= " + h);

           for (int i = 0; i <= N; i++)

           {

               x = x0 + i * h;

               if (i == 0)

                   { y = y0; }

               else 

                   { y = y_prev + h * F(x, y_prev); }

               error = y - Numerical_Solution(x);

               Console.WriteLine(i + " x= " + x + "  y(Э)= " + y + "  y(точ)= " + Numerical_Solution(x) + "  погрешность= " + error);

               if (error > max_error)

                   max_error = error;

               y_prev = y;

           }

           Console.WriteLine("максимальная ошибка = " + max_error);

           return max_error;

       }

       static float Eiler_Coche(int N)

       {

           float x, yi,            // y[i]

                   yi__,           // y[i-1/2]

                   y_prev = y0,    // y[i-1]

                   error, max_error = 0;

           float h = (float)1 / N;

           Console.WriteLine();

           Console.WriteLine("При N=" + N + ", шаг h= " + h);

           for (int i = 0; i <= N; i++)

           {

               x = x0 + i * h;

               if (i == 0)

                   { yi = y0; }

               else

               {

                   yi__ = y_prev + h/2 * F(x, y_prev);

                   yi = y_prev + h * F(x-h/2, yi__);

               }

               error = yi - Numerical_Solution(x);

               Console.WriteLine(i + " x= " + x + "  y(Э-К)= " + yi + "  y(точ)= " + Numerical_Solution(x) + "  погрешность= " + error);

               if (error > max_error)

                   max_error = error;

               y_prev = yi;

           }

           Console.WriteLine("максимальная ошибка = " + max_error);

           return max_error;

       }

       static void Main(string[] args)

       {

           Console.WriteLine("Метод Эйлера :");       

           Eiler(10);

           Eiler(20);

           Eiler(40);

           Console.WriteLine("\nМетод Эйлера-Коши :");

           Eiler_Coche(10);

           Eiler_Coche(20);

           Eiler_Coche(40);

           Console.ReadKey();

       }

   }

}

  1.  Результат:

Программа выдала следующий результат:





1. Ибер, Жак Франсуа
2. Виды информации
3. Лабораторная работа 44
4. Співвідношення соціальної держави та інформаційного суспільства в контексті вимірів свободи, права і власності
5. Развитие памяти младших школьников в процессе учебной деятельности
6. Red the text nd complete the MEN column in the tble.html
7. Государственная служба Российской Федерации
8. КреММ Общие положения 1
9. Информационное оружие и информационные войны
10. Мы ~ приемная семья В целях повышения авторитета приемных семей в обществе обмена опытом по семейному