Решение дифференциальных уравнений 1 порядка методом Эйлера - C (СИ)

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

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

Вот я написал программу, которая решает дифференциальные уравнения 1 порядка методом Эйлера (в данном случае y'=2а+y):
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
float a, b, y, h, n;
char f;
printf("\n Vvedite nachalo intervala {a;b}");
scanf("%f", &a);
printf("\n Vvedite konec intervala {a;b}");
scanf("%f", &b);
printf("\n Vvedite nachalnoe znachenie y(0)");
scanf("%f", &y);
printf("\n Vvedite chislo shagov h");
scanf("%f", &n);
f=2*a+y;
h=(b-a)/n;
printf("\n %f \t %f", a, y);
for(int i=0;i<n;i++)
{
f=2*a+y;
y=y+h*f;
a=a+h;
printf("\n %f \t %f", a, y);
}
getch();
}
проблемма состоит в том, что мне нужно, чтобы после каждого нахождения

y

и

а

их новые значения автоматически вставлялись(заменяли старые значения а и у) в функцию f=2*a+y (21 строка), чтобы на ее основе вычислить новый у и т.д. Помогите плс! Скажите что мне нужно сделать!

Решение задачи: «Решение дифференциальных уравнений 1 порядка методом Эйлера»

textual
Листинг программы
#include<stdio.h>
 
int main()
{
 
float a, b, y, h, n, f, y0;
int i;
 
printf("\n Vvedite nachalo intervala {a;b}");
    scanf("%f", &a);
printf("\n Vvedite konec intervala {a;b}");
    scanf("%f", &b);
printf("\n Vvedite nachalnoe znachenie y(0)");
    scanf("%f", &y0);
printf("\n Vvedite chislo shagov h");
    scanf("%f", &n);
 
h=(b-a)/n;
for(i=0;i<n;i++)
{
    f=2*a+y0;
    y=y0+h*f;
    printf("\n %f \t %f", a, y);
    
    a=a+h;
    y0=y;
}
getch();
}

Объяснение кода листинга программы

  1. Ввод начальных значений:
    • Вводятся начальные значения для переменных a, b, y0 и n с помощью функции scanf().
    • a и b представляют собой начальные и конечные значения интервала, в котором будет решаться дифференциальное уравнение.
    • y0 - это начальное значение функции y(0).
    • n - количество шагов, на которые разбивается интервал.
  2. Вычисление шага:
    • Значение h вычисляется как (b-a)/n, где h - это шаг, (b-a) - длина интервала, а n - количество шагов.
  3. Цикл по шагам:
    • Запускается цикл for, который выполняется n раз, по одному разу для каждого шага.
    • Внутри цикла вычисляются значения функции f и y на текущем шаге.
    • Значения a и y0 обновляются для следующего шага.
    • Выводится текущее значение a и y.
  4. Окончание программы:
    • После завершения цикла программа завершается с помощью функции getch(), которая ожидает нажатия клавиши.

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

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