Решение дифференциальных уравнений 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();
- }
Объяснение кода листинга программы
- Ввод начальных значений:
- Вводятся начальные значения для переменных
a
,b
,y0
иn
с помощью функцииscanf()
. a
иb
представляют собой начальные и конечные значения интервала, в котором будет решаться дифференциальное уравнение.y0
- это начальное значение функцииy(0)
.n
- количество шагов, на которые разбивается интервал.
- Вводятся начальные значения для переменных
- Вычисление шага:
- Значение
h
вычисляется как(b-a)/n
, гдеh
- это шаг,(b-a)
- длина интервала, аn
- количество шагов.
- Значение
- Цикл по шагам:
- Запускается цикл
for
, который выполняетсяn
раз, по одному разу для каждого шага. - Внутри цикла вычисляются значения функции
f
иy
на текущем шаге. - Значения
a
иy0
обновляются для следующего шага. - Выводится текущее значение
a
иy
.
- Запускается цикл
- Окончание программы:
- После завершения цикла программа завершается с помощью функции
getch()
, которая ожидает нажатия клавиши.
- После завершения цикла программа завершается с помощью функции
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д