Решение задачи Коши модифицированным методом Эйлера - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Помогите, пожалуйста, написать программу на языке программирования C# по задаче Коши модифицированным методом Эйлера. Желательно написать в Windows Form, ну или хотя бы в консольном приложении. Мне нужно, чтобы шаг считался автоматически, делился на 2. Условие: (dy/dx)+2*pi*y^2*cos(2*pi*x+(pi/6)=0. x0=0; y0=1/(sin(pi/6). Предел интегрирования 0.4 в ссылке фото с примерным алгоритмом. Может. найдете какие-нибудь ошибки.. Заранее спасибо!

Решение задачи: «Решение задачи Коши модифицированным методом Эйлера»

textual
Листинг программы
class Program
{
    delegate double Foo(double x);
    delegate double Foo2(double x, double y);
 
    static double df(double x, double y, double omega, double phi)
    {
        return -omega * y * y * Math.Cos(omega * x + phi);
    }
 
    static double Integral(Foo2 F, double x, double x0, double y0, double eps)
    {
        int n = 1;
        double y_h = double.MaxValue; // Значение с текущим шагом 
        double y_double_h = 0;        // Значение с удвоенным шагом
 
        while (Math.Abs(y_h - y_double_h) > eps) // это условие излишне, см. учебник
        {
            double h = (x - x0) / n;
            double y = y0;
            double t = x0;
 
            for (int i = 0; i < n; i++)
            {
                y += h * F(t + h / 2, y + h * F(t, y) / 2);
                t += h;
            }
 
            n *= 2;
            y_double_h = y_h;
            y_h = y;
        }
 
        return y_h;
    }
 
    static void Main(string[] args)
    {
        double omega = 2.0 * Math.PI, phi = Math.PI / 6.0;
        double x0 = 0, y0 = 1 / Math.Sin(phi);
        Foo I = b => Integral((x, y) => df(x, y, omega, phi), b, x0, y0, 1e-5);
 
        Console.WriteLine(I(0.4));
        Console.ReadLine();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы