2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 
Сообщение29.11.2008, 00:41 
Аватара пользователя


15/01/06
200
Цитата:
Leierkastenmann
А если мне нужно решать методом Рунги - Кутта и погрешности должны быть определенные можно это задать?


Выбирайте какой вам нужен Рунге-Кутта и задавайте его опцией Method-> в NDSolve. Доступны следующие методы:
Код:
Methods
ExplicitRungeKutta
ImplicitRungeKutta
SymplecticPartitionedRungeKutta
Controller methods
Composition and Splitting
DoubleStep
EventLocator
Extrapolation
FixedStep
OrthogonalProjection
Projection
StiffnessSwitching
Submethods
ExplicitEuler
ExplicitMidpoint
ExplicitModifiedMidpoint
LinearlyImplicitEuler
LinearlyImplicitMidpoint
LinearlyImplicitModifiedMidpoint
LocallyExact


Для точности есть опции AccuracyGoal, PrecisionGoal, но это математическая точность. Плюс еще можно задавать всякие опции, связанные с шагом. Откройте хэлп к NDSolve и там все расписано, что есть и какие возможности.

 Профиль  
                  
 
 
Сообщение09.12.2008, 13:23 


20/11/08
10
Leierkastenmann

Прошу прощения но что-то опять не так. График у меня не строится. Получается прямая, вместо закручивающейся окружности.

Вот код:
Код:
myeps = 0.1;
mymu = 2;
myM = 1;

sol = NDSolve[
  {
   x'[t] == -y[t] +
     Which[x[t] + z[t] < -myeps, -myeps^3, x[t] + z[t] < myeps,
      mymu*(x[t] + z[t]), x[t] + z[t] > myeps, myeps^3],
   y'[t] ==
    x[t] + Which[x[t] + z[t] < -myeps, -myeps^3, x[t] + z[t] < myeps,
      mymu*(x[t] + z[t]), x[t] + z[t] > myeps, myeps^3],
   z'[t] == -z[t] +
     Which[x[t] + z[t] < -myeps, -myeps^3, x[t] + z[t] < myeps,
      mymu*(x[t] + z[t]), x[t] + z[t] > myeps, myeps^3],
   x[0] == 0, y[0] == -0.8165, z[0] == 0
   },
  {x, y, z},
  {t, 0, 1256.6371},
  Method -> {"ExplicitRungeKutta", "DifferenceOrder" -> 4},
  InterpolationOrder -> All,
  StartingStepSize -> 0.0001
  ]

ParametricPlot[{x[t], y[t]} /. sol, {t, 0, 1256.6371},
PlotRange -> All]


еще предупреждение кидает:
Код:
NDSolve::mxst: Maximum number of 10000 steps reached at the point t == 166.6857351451608`. >>

Но t нужно больше!

 Профиль  
                  
 
 
Сообщение09.12.2008, 20:48 
Аватара пользователя


15/01/06
200
Ну раз кидает такое предупреждение, увеличьте количество шагов, сделайте MaxSteps например сто тысяч. И получите при построении графика вот такую штуку
Изображение

 Профиль  
                  
 
 
Сообщение10.12.2008, 00:20 


20/11/08
10
Leierkastenmann
Хорошо! А что там с точностью? Я имею в виду погрешность вычисления! Такие как обсалютная и относительная ошибка вычисления для метода? Читал help не нашел такого!

 Профиль  
                  
 
 
Сообщение17.03.2009, 22:21 
Аватара пользователя


15/01/06
200
Точность управляется опциями AccuracyGoal и PrecisionGoal. Или интересует что-то иное?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2

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



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

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


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

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