2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 01:55 


21/05/17
4
Здравствуйте.
Пытаюсь работать в программе Mathematica 11.0
Ввожу значения из учебника, но программа выдаёт ошибку.
В чём проблема?
Учебник: http://geometry.karazin.ua/resources/documents/20150217125417_f10a4f73.pdf
Параграф 4.5.14 Двухвидовая модель Вольтерра «хищник – жертва»
Что я ввожу в программу:
Код:
a = 3; b = 3; c = 1; d = 1;
sys := {x'[t] == (a - by[t]) x[t], y'[t] == (-c + dx[t]) y[t]}
bc := {{x[0] == 2, y[0] == 1}, {x[0] == 1, y[0] == 2},
  {x[0] == 1, y[0] == 3}, {x[0] == 3, y[0] == 2}}
col : {{Black}, {Blue}, {Green}, {Cyan}}
pp = Table[se = Join[sys, bc[[i]]];
   u = NDSolve[se, {x, y}, {t, 0, 7}];
   fx = u[[1, 1, 2]];
   fy = u[[1, 2, 2]];
   p = ParametricPlot[{fx[t], fy[t]}, {t, 0, 7},
     PlotStyle -> {Thickness[0.01], col[[i]]}];
   p, {i, 1, 4}];
Show[pp, PlotRange -> All]


Ошибка:
Цитата:
NDSolve::underdet: There are more dependent variables, {by[t],dx[t],x[t],y[t]}, than equations, so the system is underdetermined.
Part::partd: Part specification col[[1]] is longer than depth of object.

 Профиль  
                  
 
 Re: Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 02:01 
Заслуженный участник
Аватара пользователя


01/09/13
4656
Знак умножения (пробел) поставить где положено...?

 Профиль  
                  
 
 Re: Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 02:08 
Заслуженный участник


27/04/09
28128
Ой не только! Ещё пропущены ; в конце нескольких строк (определения sys, bc, col), и col : должно быть col :=. А ;-последовательность выражений внутри Table хорошо бы обернуть в Block с указанием локальных имён. Безопаснее/аккуратнее.

 Профиль  
                  
 
 Re: Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 09:03 


21/05/17
4
Ооо, точно, пропустил ";" )
Странно, что и в учебнике не поставили ";" в конце строк.
Исправил, что нашел, но всё равно ошибка...
Помогите пожалуйста найти, что ещё не так.
Я в этой программе не разбираюсь, мне бы сдать и забыть )
з.ы. хорошо бы как можно меньше менять код из учебника, но чтоб работало )
з.ы. пропущенный пробел не нашел.
Спасибо)

Код:
a = 3; b = 3; c = 1; d = 1;
sys := {x'[t] == (a - by[t]) x[t], y'[t] == (-c + dx[t]) y[t]};
bc := {{x[0] == 2, y[0] == 1}, {x[0] == 1, y[0] == 2},
   {x[0] == 1, y[0] == 3}, {x[0] == 3, y[0] == 2}};
col := {{Black}, {Blue}, {Green}, {Cyan}};
pp = Table[se = Join[sys, bc[[i]]];
   u = NDSolve[se, {x, y}, {t, 0, 7}];
   fx = u[[1, 1, 2]];
   fy = u[[1, 2, 2]];
   p = ParametricPlot[{fx[t], fy[t]}, {t, 0, 7},
     PlotStyle -> {Thickness[0.01], col[[i]]}];
   p, {i, 1, 4}];
Show[pp, PlotRange -> All]

ошибки:
Цитата:
NDSolve::underdet: There are more dependent variables, {by[t],dx[t],x[t],y[t]}, than equations, so the system is underdetermined.
NDSolve::underdet: There are more dependent variables, {by[t],dx[t],x[t],y[t]}, than equations, so the system is underdetermined.
NDSolve::underdet: There are more dependent variables, {by[t],dx[t],x[t],y[t]}, than equations, so the system is underdetermined
General::stop: Further output of NDSolve::underdet will be suppressed during this calculation..

 Профиль  
                  
 
 Re: Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 09:38 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
anashkin в сообщении #1217740 писал(а):
Я в этой программе не разбираюсь, мне бы сдать и забыть )
Эх, зря вы так... Не понимаю, как можно не проникнуться любовью к Wolfram Language с первого взгляда. Наверное, у вас преподаватель плохой. Надеюсь, вы любите какой-нибудь другой ЯП. Надеюсь также, что это не Java. Ну хотя бы Питон!
anashkin в сообщении #1217740 писал(а):
пропущенный пробел не нашел.
Он здесь: у вас by[t], а должно быть b y[t].
anashkin в сообщении #1217740 писал(а):
ошибки:
Сообщения об ошибках говорят вам о том, что ваша система является недоопределённой: число неизвестных в ней больше числа уравнений.

 Профиль  
                  
 
 Re: Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 12:02 


21/05/17
4
Ураааа, получилось! :)
Спасибо большое всем откликнувшимся, без вашей помощи не обошелся бы )

 Профиль  
                  
 
 Re: Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 12:13 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
anashkin в сообщении #1217713 писал(а):
Учебник:
Решил его почитать. Наткнувшись на первой же странице на милейший косяк в виде

Изображение

я догадался, что редактурой здесь не пахнет. Читая далее, однозначно понял, что уважаемый П. Г. Доля (автор учебника) вообще не заморачивался тем, чтобы дать хоть кому-то почитать свой труд перед публикацией. Изучением ТеХа он тоже не заморачивался, ибо документ создан в MS Word, и это также не делает ему (автору) чести.
Пролистав четверть (дальше не смог: от вёрстки начали вытекать глаза; закрыл вкладку в ПДФ-ридере и открылась соседняя: учебник матана Львовского; вот это контраст!), могу предположить, что как преподаватель автор этого труда, возможно, и неплох, но писать учебники он не умеет от слова «совсем». Возм., когда-нибудь научится. anashkin, если вы желаете как следует изучить Wolfram Language (а, тьфу, вы ж ни черта не желаете, ну ладно, другим посоветую), начните с книги Paul Wellin — Programming with Mathematica: An Introduction,

 Профиль  
                  
 
 Re: Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 13:49 


21/05/17
4
Aritaborian
На всякий случай, преподаёт у нас не автор этого учебника)
Хотя преподаёт это громко сказано - дал нам самим разбираться.
Нам в принципе этот предмет и не нужен, нам просто нужно сдать последние 4 задачи, и усё)
Помогите пожалуйста разобраться с последней, чёт тоже не работает:
Код:
Module[{u, se, x, y, pt, sys, fx, fy},
a = 3; b = 3; c = 1; d = 1;
sys := {x'[t] == (a - b y[t]) x[t], y'[t] == (-c + d x[t]) y[t]};
Manipulate[
  se = Join[sys, {x[0] == pt[[1]], y[0] == pt[[2]]}];
  u = NDSolve[se, {x, y}, {t, 0, 7}];
  ParametricPlot[{fx[t], fy[t]}, {t, 0, 7},
   PlotStyle -> {Thickness[0.01], Black},
   PlotRange -> {{0, 7}, {0, 4}},
   PlotLabel -> StringJoin["Начальные значения", ToString[pt]]],
  {{pt, {2, 2}, x[0], y[0]} {1, 1}, {3, 3}},
  ControlPlacement -> Left, AutoAction -> False,
  Initialization :> {fx := u[[1, 1, 2]]; fy := u[[1, 2, 2]];}]]

Ошибка:
Цитата:
Manipulate::vsform: Manipulate argument {{pt$13773,{2,2},x$13773[0],y$13773[0]} {1,1},{3,3}} does not have the correct form for a variable specification.

 Профиль  
                  
 
 Re: Mathematica Что я делаю не так? Двухвидовая модель Вольтерра
Сообщение21.05.2017, 18:52 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Множество красненьких букв (и это ещё до нажатия Shift+Enter!) вас вообще не смутило?

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

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



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

Сейчас этот форум просматривают: DariaRychenkova


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

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