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

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();
}

7   голосов, оценка 3.857 из 5


СОХРАНИТЬ ССЫЛКУ