Решение дифференциального уравнения второго порядка модифицированным методом Эйлера - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д