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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2013, 21:05   #1
Janny2014
Новичок
Джуниор
 
Регистрация: 26.11.2013
Сообщений: 1
По умолчанию реализовать метод Эйлера и метод Рунге-Кутте 4-ого порядка на языке С++

Здравствуйте! Очень нужна Ваша помощь! Надо реализовать метод Эйлера и метод Рунге-Кутте 4-ого порядка на языке С++, программа идет, но считает что -то непонятное...Подскажите, пожалуйста, в чем ошибка?

Код:
#include "stdafx.h"
#include <iostream>
using namespace std;


double func(double x, double y)
{
	return y*x;
}

void eiler(double(*f)(double,double),int N,double eps,double *x, double *y,double h)
{
	y[0]=f(x[0]);
	for(int i=1;i<N;++i)
	{
		x[i]=x[i-1]+h;
		y[i]=y[i-1]+h*f(x[i-1],y[i-1]);
	}
	for(int i=0;i<N;++i)
	{
		cout<<x[i]<<' '<<y[i];
	}
}

void runge4(double(*f)(double,double),int N,double eps,double *x, double *y,double h)
{
	y[0]=f(x[0]);
	for(int i=1;i<N;++i)
	{
		double K1=1.0*h*f(x[i],y[i]);
		double K2=1.0*h*f(x[i]+h/2,y[i]+1/2*K1);
		double K3=1.0*h*f(x[i]+h/2,y[i]+1/2*K2);
		double K4=1.0*h*f(x[i]+h,y[i]+K3);
		y[i]=y[i-1]+1/6*(K1+2*K2+2*K3+4*K4);
	}
	for(int i=0;i<N;++i)
	{
		cout<<x[i]<<' '<<y[i];
	}
}


void main()
{
	double eps;
	cin>>eps;
	int N=1/eps;
	double *x=new double[N];
	double *y=new double[N];
	cin>>x[0]>>x[N];
	double h=(x[N]-x[0])*eps;
	eiler(func,N,eps,x,y,h);
	runge4(func,N,eps,x,y,h);
	delete x;
	delete y;
}

Последний раз редактировалось Stilet; 26.11.2013 в 21:57.
Janny2014 вне форума Ответить с цитированием
Старый 27.11.2013, 05:23   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Код:
double(*f)(double,double)
y[0]=f(x[0]);
каким образом работает программа? если передаваемый параметр в функцию всего один? когда их должно быть 2?
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Рунге-Кутта 4-го порядка + метод трапеций Bugrimov Помощь студентам 0 09.11.2013 21:48
Метод Рунге-Кутта 4 порядка роткиВ Помощь студентам 2 25.09.2012 10:50
Метод Рунге- Кутта 5-6 порядка unique_you Помощь студентам 0 17.12.2011 15:26
Метод Рунге Кутты и Эйлера Nikolai17 Помощь студентам 1 20.05.2010 11:42
Метод Эйлера и Рунге-Кута HECTOR.A. Помощь студентам 0 11.05.2009 16:24