Решение дифференциального уравнения второго порядка модифицированным методом Эйлера - 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();
}
}
}

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


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

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

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