2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Метод Рунге-Кутта с автоматическим выбором шага.Mathematica7
Сообщение20.12.2009, 20:13 


20/12/09
1
Доброго времени суток!!!
Помогите пожалуйста решить задачу Коши для системы дифференциальных уравнений методом Рунге-Кутта 4-ого порядка с автоматическим выбором шага в среде Mathematica 7.
Есть решение одного уравнения, но я никак не могу понять как поступать с системой. Высчитывать отдельно по каждому уравнению или каким-то образом вместе. Помогите разобраться, пожалуйста.
Код:
a=1;
b=1.5;
x0=1;
y0=0.;
h=0.05;
eps=0.0001;
n=(b-a)/h;
epsh=eps/n;
kmax=5;
xr=List[x0];
yr=List[y0];

While[b-x0 > 10^-12 ,
   
   err=1;
   kd=0;
   yh=y0 + rng[h, x0, y0];

   While [err>epsh && kd<=kmax,
            h=h/2;
            kd++;        
            ypr = y0 + rng[ h, x0, y0];
            yh2 = ypr + rng[ h, x0+h, ypr];
            err = Abs[(yh-yh2)]/7.;
            yh=yh2;            
   ];

   h=2 h;
   x1=x0+h;
   y1=yh2;
    AppendTo[xr,x1];
    AppendTo[yr,y1];
   Print ["x= ", x1, " y ~ ", y1, "   y точное= ", yt[x1], "    h= ",h ,
          "  Количество дроблений на шаге= ", kd ];
   Print["Погрешность по Рунге = ",err,
      " Погрешность истинная = " , Abs[y1-yt[x1]]];
      
   If[ err> eps && kd > kmax,
   Print["!!!  Точность на шаге не достигнута   !!!"] ];
   Print[""];
   x0=x1;
   y0=y1;

   If [ err < eps/16.  ,  h=2 h];
   If [h > b-x0 , h = b-x0];

   ];

Заранее спасибо.

 Профиль  
                  
 
 Re: Метод Рунге-Кутта с автоматическим выбором шага.Mathematica7
Сообщение24.12.2009, 22:17 
Аватара пользователя


15/01/06
200
Marisa в сообщении #273505 писал(а):
Доброго времени суток!!!
Помогите пожалуйста решить задачу Коши для системы дифференциальных уравнений методом Рунге-Кутта 4-ого порядка с автоматическим выбором шага в среде Mathematica 7.
Есть решение одного уравнения, но я никак не могу понять как поступать с системой. Высчитывать отдельно по каждому уравнению или каким-то образом вместе. Помогите разобраться, пожалуйста.
Заранее спасибо.


Мне кажется вам лучше этот вопрос задать в численных методах, а не в околонаучном софте, потому что вопрос у вас как поступить с системой с точки зрения численного метода, а не Математики.

 Профиль  
                  
 
 Re: Метод Рунге-Кутта с автоматическим выбором шага.Mathematica7
Сообщение26.12.2009, 09:13 


22/09/09
275
Marisa в сообщении #273505 писал(а):
Доброго времени суток!!!
Помогите пожалуйста решить задачу Коши для системы дифференциальных уравнений методом Рунге-Кутта 4-ого порядка с автоматическим выбором шага в среде Mathematica 7.
Есть решение одного уравнения, но я никак не могу понять как поступать с системой. Высчитывать отдельно по каждому уравнению или каким-то образом вместе. Помогите разобраться, пожалуйста.
Заранее спасибо.

Для явных методов типа Р-К формулы одни и те же. Единственный фактор - оценка ошибки на шаге интегрирования.
Я не знаю пакета Mathematica, но правила общие для любого пакета:
оценка ошибки может делаться в разных нормах (или, как говорят, в любой разумной норме). Ясно, что формулы реализации расчета ошибки разные для одного уравнения и для системы.
Самая жесткая оценка - максимум модуля. Другая, часто применяемая оценка, квадратный корень из суммы квадратов ошибок. На практике еще применяются спецоценки для предотвращения неоправданного дробления шага интегрирования.
Сами пакеты строят на общий случай системы уравнений, так что для одного уравнения может получиться сначала возведение ошибки в квадрат, а потом извлечение корня. Это лишь для общности вычислений.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group