Система громоздких ОДУ. Зашел в тупик, нужен пинок.

Форум пользователей пакета Mathcad

Модератор: Admin

Maxakch
Сообщения: 13
Зарегистрирован: Ср авг 08, 2012 11:24 am
Откуда: Москва
Контактная информация:

Система громоздких ОДУ. Зашел в тупик, нужен пинок.

Сообщение Maxakch » Ср авг 08, 2012 11:56 am

Собственно бьюсь уже порядочное время над системой ОДУ из 6 уравнений, никак ничего не могу придумать. Может у кого есть опыт в подомных задачах, или хотя бы идеи с какого еще края можно подступиться.
Собственно основная проблемы:
1)Система не решается =(
2) Как мне кажется дело в очень громоздких выражениях.
3) Может где-то закралась ошибка, и кто-нибудь предложит методику ее поиска?
4) Может Mathcad как в принципе не в состоянии решить такую громоздкую систему?
P.S. заранее прошу извинить за возможные орфографические и синтаксические ошибки.

Изображение

Изображение

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Re: Система громоздких ОДУ. Зашел в тупик, нужен пинок.

Сообщение VFO » Ср авг 08, 2012 12:59 pm

Maxakch писал(а):Собственно бьюсь уже порядочное время над системой ОДУ из 6 уравнений, никак ничего не могу придумать. Может у кого есть опыт в подомных задачах, или хотя бы идеи с какого еще края можно подступиться.
Собственно основная проблемы:
1)Система не решается =(
2) Как мне кажется дело в очень громоздких выражениях.
3) Может где-то закралась ошибка, и кто-нибудь предложит методику ее поиска?
4) Может Mathcad как в принципе не в состоянии решить такую громоздкую систему?
P.S. заранее прошу извинить за возможные орфографические и синтаксические ошибки.

Изображение

Изображение

Прикрепите файл с вашими попытками решить задачу.
Тут, я думаю, можно попробывать работать с блоком given-odesolve.

Maxakch
Сообщения: 13
Зарегистрирован: Ср авг 08, 2012 11:24 am
Откуда: Москва
Контактная информация:

Сообщение Maxakch » Ср авг 08, 2012 2:04 pm

Сначала решал в Prime, но там нету символьных вычислений. И с форматом документа там беда... Выкладываю этот файл. Сейчас все переделываю в 15ом. То, что получается (точнее не получается) выложу попозже.

Vladimir__
Сообщения: 1660
Зарегистрирован: Вс дек 21, 2003 8:52 am

Сообщение Vladimir__ » Ср авг 08, 2012 2:52 pm

Maxakch писал(а):...Сначала решал в Prime, но там нету символьных вычислений...

В Prime 2.0 есть:

Изображение

Maxakch
Сообщения: 13
Зарегистрирован: Ср авг 08, 2012 11:24 am
Откуда: Москва
Контактная информация:

Сообщение Maxakch » Ср авг 08, 2012 3:13 pm

Знаю что в Prime 2.0 есть, но у меня Prime 2.0 нету) А форматирование документов в 2.0 исправили? т.е. у меня большие формулы не влазят, даже в режиме черновик.

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Ср авг 08, 2012 3:37 pm

Maxakch писал(а):Знаю что в Prime 2.0 есть, но у меня Prime 2.0 нету) А форматирование документов в 2.0 исправили? т.е. у меня большие формулы не влазят, даже в режиме черновик.

Что значит "не влазят"? Куда "не влазят"?
А второй Прайм можно скачать с сайта ptc.com

Maxakch
Сообщения: 13
Зарегистрирован: Ср авг 08, 2012 11:24 am
Откуда: Москва
Контактная информация:

Сообщение Maxakch » Ср авг 08, 2012 3:46 pm

VFO писал(а):
Maxakch писал(а):Знаю что в Prime 2.0 есть, но у меня Prime 2.0 нету) А форматирование документов в 2.0 исправили? т.е. у меня большие формулы не влазят, даже в режиме черновик.

Что значит "не влазят"? Куда "не влазят"?
А второй Прайм можно скачать с сайта ptc.com

Не хотелось бы засорять эту ветку, но все же отвечу.
Изображение
А скачать можно только триальную версию...

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Ср авг 08, 2012 4:09 pm

Само собой разумеется.
Кроме того, в Прайме можно решать ОДУ с единицами измерения, что существенно повышает надежность решения задач.

Maxakch
Сообщения: 13
Зарегистрирован: Ср авг 08, 2012 11:24 am
Откуда: Москва
Контактная информация:

Сообщение Maxakch » Ср авг 08, 2012 5:47 pm

вот моя попытка в 15 MaTHCAD
Выдает следующие ошибки
для radau
the return of this function must match the problem size
или
This function cannot be used here
для Рунге-Кутты

мои попытки в решения.xmcd

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Ср авг 08, 2012 7:24 pm

И не лень же столько писать, такое уже не в Mathcad делать надо, а в Maple, к примеру.

Отладка делается так:

Изображение

Прежде чем сообщить об ошибке, кое-что может работать. Чтобы локализовать место, нужно использовать технику на картинке.

Maxakch
Сообщения: 13
Зарегистрирован: Ср авг 08, 2012 11:24 am
Откуда: Москва
Контактная информация:

Сообщение Maxakch » Чт авг 09, 2012 3:04 pm

Спасибо тебе добрый человек... Так конечно гораздо легче искать ошибки, не думал, что в Mathcad можно пошагово запускать "решатели". Кое-что поправил,однако, теперь вылазит ошибка - какое то число превышает 10^307. Скорее всего, где-то происходит деление на ноль. Вроде все свои "подозрительные функции" по-выводил через trace, но пока пока ошибку не нашел. Может в Mathcad есть еще какое-нибудь чудесные средства для поиска "мест деления на ноль".
Изображение
P.S. Ну да напряжено столько всего писать было, конечно. А в Maple - такие вещи легче считать? Просто всегда думал, что Maple заточен под символьные вычисления, и ОДУ численно там не решить...

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Чт авг 09, 2012 6:58 pm

Вы не совсем разглядели мощь метода. Я же специально показал вывод из функции "f1(...)". Такой блок нужно вписать в каждой (каждой !) вашей функции, а не только в самом начале :)

Так конечно ничего не найти. Локализация, она на то и локализация, что движемся от общего к частному. Ваши функции вызываются циклически численным решателем ДУ. Если такой блок аналогичным совершенно образом вставить во все функции, то вы будете точно знать где именно и с какими входными параметрами произошёл сбой.

А выглядеть лог будет как мешанина из вызовов всех функций. Мне было лень выписывать для каждой и я ограничился только вставкой блока в f1(), чтобы понятней было. Всякий раз, когда вызывалась f1(), внизу была строчка "f1(...)".

Работать всё будет медленно из-за вывода, но если нужен результат, то это метод.

А в Maple меньше нужно мышкой двигать. Численно там конечно можно всё порешать, но выглядеть это будет не немножко по-другому, в текстовой форме.

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Чт авг 09, 2012 8:03 pm

Ещё раз, посмотрите внимательно как можно это использовать:

Изображение

Если взять окно отладки за заголовок при нажатой клавише Ctrl, то оно "поплывёт".

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Чт авг 09, 2012 8:19 pm

С помощью одного приёма можно даже время работы функций при отладке отслеживать, но понять это сложнее:

Изображение

uni
Сообщения: 1817
Зарегистрирован: Сб ноя 13, 2004 3:06 pm
Откуда: п.г.т. Излучинск
Контактная информация:

Сообщение uni » Чт авг 09, 2012 10:31 pm

И вообще, я что-то не наблюдаю работу воображения...

Вот какие фокусы можно делать в Mathcad:

[Ctrl] + [Enter] - перенос суммирования на следующую строку;
[Ctrl] + [4] - сумма всех элементов вектора (значок появляется специальный, он и на панели есть)

Изображение