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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 21:08   #1
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
Плохо Метод Эйлера

Здравствуйте, помогите написать программу решающую ОДУ методом Эйлера.
В интернете смог найти вот этот код, я теперь пытаюсь в нём разобратся, скажите правильно ли я думаю?(на всякий случай вот моё уравнение : y'=y-2x/y y(0)=1 h=0.2, y(x0)=y0)
Код:
using System;
namespace МетодЭйлераОДУ {
   class Program {
      static double f( double x, double y ) {
return (y / x + x * x);//на месте этой формулы должна стоять вот эта "y-2x/y"?
}
static void Main( string[ ] args ) {
double x = 1;
double y = 1;
double x1 = 2;//Совсем не понимаю, что здесь должно быть...
int n = 10;//кол-во узлов, указывается произвольно?
double h = (x1 - x) / n;//а что это?
double y1 = y;
for (int i = 1; i <= n; i++) {
double f1 = f(x, y);
x += h;
y += f1 * h;
y = y1 + h * (f1 + f(x, y)) / 2;// здесь мы выполняем коррекцию?
y1 = y;
}
Console.WriteLine("y = {0}", y);
Console.ReadLine();
}
}
}
Буду очень благодарен, если кто-нибудь мне поможет.
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 01.12.2011, 11:04   #2
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Это, мне как бы стыдно просить, но надо. Помогите разобраться пожалуйста = )
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 01.12.2011, 13:24   #3
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Ну так у тебя не с програмирование проблема а с дифурами.
у тебя решение ищется на отрезке от A до B с шагом h. Только в твоем премере A присвоили переменной X а B переменной X1. количество разбиений (n) выбирается произвольно, но оно обратно пропорционально погрешности, так что тут все зависит от ребуемой точности вычисления.
Где вычисляется корекция ты определил правильно
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
мой метод Эйлера nikozavr Общие вопросы C/C++ 8 23.12.2011 18:04
Метод Эйлера Anubys Общие вопросы C/C++ 2 17.05.2011 16:51
Метод Эйлера RoKSport Паскаль, Turbo Pascal, PascalABC.NET 5 12.02.2011 12:45
Метод Эйлера и Рунге-Кута HECTOR.A. Помощь студентам 0 11.05.2009 16:24