Решение дифференциального уравнения второго порядка модифицированным методом Эйлера - C#
Формулировка задачи:
Здравствуйте! Прошу помочь в написании программы для решения дифференциального уравнения второго порядка модифицированным методом Эйлера. Само задание ниже. (Вроде легко, но что-то не идет у меня)
Верю в Вас, заранее спасибо!
Решение задачи: «Решение дифференциального уравнения второго порядка модифицированным методом Эйлера»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication8
- {
- class Program
- {
- static double f(double t, double y, double x, double a, double b, double c, int j)
- {
- if (j == 0) return (-b * y - c * x) / a;
- else return y;
- }
- public static double[] x { get; set; }
- public static double[] y { get; set; }
- public static double[] t { get; set; }
- static void MME(double a, double b, double c, double tn, double tk, int n, double x0, double y0)
- {
- t = new double[n + 1];
- x = new double[n + 1];
- y = new double[n + 1];
- double h = (tk - tn) / n;
- int i;
- t[0] = tn;
- x[0] = x0;
- y[0] = y0;
- for (i = 1; i <= n; i++)
- {
- t[i] = t[i - 1] + h;
- x[i]=x[i-1]+(-c*y[i-1]-b*x[i-1])*h;
- y[i]=y[i-1]+x[i-1]*h;
- }
- }
- static void Main(string[] args)
- {
- double a = 0.01, b = 20, c = 300000, x0 = 0.00001, y0 = -0.01;
- int n = 100;
- MME(a, b, c, 0, 0.004, n, x0, y0);
- for (int i = 0; i <= n; i++)
- Console.WriteLine("t[{0}]={1,6:f5} \t q\'[{0}]={2,8:f8} \t q[{0}]={3,10:f8}", i, t[i], y[i], x[i]);
- Console.ReadKey();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д