Народ помоги пожалуйста... Ничего не понимаю.... вроде формула правильная взята из учебника... а пахать всёравно не хочет..... Р-К 2-го порядка это так же метод Хойна или Эйлера Коши... и ниодна из формул не работает(((( Может кто что подскажет, ато лабу скоро сдавать(( Ошибок не выдаёт.... всёремя выводит только начальные условия(
| Код | #include "stdafx.h"
double y1,y2,h,Xmax,y1k,y2k,s; double f1(double y1,double y2){ return (-1000*y1+999*y2); } double f2(double y1,double y2){ return (y1-2*y2); }
int main() { printf("The decision the ODE a method of Runge-Kutta\n"); printf("Nam dano ODE 2-go pordka\n"); printf("dy1/dx=-100y1+999y2\n"); printf("dy2/dx=y1-2y2\n"); printf("Vvedite Xmax\n"); printf("Vvedite h\n"); /*scanf_s("%f", &Xmax);*/ scanf_s("%f %f",&Xmax, &h); y1k=10; y2k=20; for (double i=1; i<=10; i++) {
/*y1=y1k+h*f1(y1k+(h/2)*f1(y1k,y2k),y2k+(h/2)*f2(y1k,y2k));*/ y1=y1k+(h/2)*(f1(y1k,y2k)+f1(y1k+h*f1(y1k,y2k),y2k+h));
y2=y2k+h*f2(y1k+(h/2)*f1(y1k,y2k),y2k+(h/2)*f2(y1k,y2k));
s=i*h; y1k=y1; y2k=y2; printf("%f %f %f\n", s, y1, y2); };
_gettch(); return 0; } |
Модератор: не забываем пользоваться кнопочкой "Код" |