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, Супермодераторы



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

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


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

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