Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 20:15   #1
peace on you
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 27
По умолчанию Метод Рунге-Кутты

Люди разбирающиеся, помогите пожалуйста.
Есть такое уравнение : y'=2xy^3/(1-x^2y^2).
При таких то заданных НУ.
Пытаюсь решить методом Рунге-Кутты.
Проинтегрировав данное уравнение и подставив в код получаю ошибку(выделение синей строки f1 = (-y0+k1/2)*log(1-(x0+h/2)*(x0+h/2)*(y0+k1/2)*(y0+k1/2));)
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float h=0.05,x0=2,xk=2.5,y0=1,k1,k2,k3,k4,f0,f1,f2,f3,x,y;
printf("x0=%f y0=%f\n",x0,y0);
met1:{ x=x0+h;
f0=-y0*log(1-x0*x0*y0*y0);
k1=h*f0;
f1=(-y0+k1/2)*log(1-(x0+h/2)*(x0+h/2)*(y0+k1/2)*(y0+k1/2));
k2=h*f1;
f2=(-y0+k2/2)*log(1-(x0+h/2)*(x0+h/2)*(y0+k2/2)*(y0+k2/2));
k3=h*f2;
f3=(-y0+k3)*log(1-(x0+h)*(x0+h)*(y0+k3)*(y0+k3));
k4=h*f3;
y=-y0+(k1+2*k2+2*k3+k4)/6;
printf("x=%f y=%f\n",x,y);}
 
if (x<=xk) {x0=x, y0=y;goto met1;}
getch();}
peace on you вне форума Ответить с цитированием
Старый 11.12.2011, 21:04   #2
peace on you
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 27
По умолчанию

чуть переделал, ошибка сместилась до строчки к4=h*f3 :
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
float h=0.05,x0=2,xk=2.5,y0=1,k1,k2,k3,k4,f0,f1,f2,f3,x,y;
printf("x0=%f y0=%f\n",x0,y0);
met1:{ x=x0+h;
f0=y0*log(x0*x0*y0*y0);
k1=h*f0;
f1=(y0+k1/2)*log(x0+h/2)*(x0+h/2)*(y0+k1/2)*(y0+k1/2);
k2=h*f1;
f2=(y0+k2/2)*log(x0+h/2)*(x0+h/2)*(y0+k2/2)*(y0+k2/2);
k3=h*f2;
f3=(y0+k3)*log(x0+h)*(x0+h)*(y0+k3)*(y0+k3);
k4=h*f3;
y=y0+(k1+2*k2+2*k3+k4)/6;
printf("x=%f y=%f\n",x,y);}
if (x<=xk) {x0=x, y0=y;goto met1;}
getch();}
peace on you вне форума Ответить с цитированием
Старый 13.12.2011, 12:17   #3
peace on you
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 27
По умолчанию

спасибо всем кто ответил, лабусдал.
peace on you вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение ОДУ методом Рунге-Кутты Демик Помощь студентам 7 03.12.2011 14:24
методы: Рунге-Кутты и симпсона на delphi neomax38 Помощь студентам 1 10.11.2011 15:49
Метод Рунге-Кутты smbd2011 Общие вопросы C/C++ 5 16.09.2011 23:14
Метод Рунге-Кутты smbd2011 Помощь студентам 0 16.09.2011 20:43
Метод Рунге Кутты и Эйлера Nikolai17 Помощь студентам 1 20.05.2010 11:42