Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений

Ответить
Настройки темы
Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений

Новый участник


Сообщения: 26
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте, друзья!

Следующая проблема: имеется система из двух дифференциальных уравнений, решением которой является бигармоническая функция, имеется 8 начальных условий. Решение произвожу средствами стандартной функции DSolve[]. Начальные условия задаю следующим образом:

начальное_условие1 := выражение == 0 .

Загвоздка состоит в том, что когда функция DSolve[] начинает вычислять, она проверяет начальные условия и получает в качестве аргумента True, а не систему равенств; иными словами, насколько я понял механизм, сначала Математика проверяет истинность начальных условий, а потом передает в DSolve[] в качестве аргумента логическую переменную - True или False (вернее, 8 логических переменных - по одной на каждое из начальных условий).

В общем, как мне справиться с этим камнем преткновения?

Отправлено: 09:02, 19-12-2012

 

Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, и еще 1 вопрос по теме: если я задал функцию в виде:

f[x_,y_] := x^2+y^2;

а потом далее в программе использую f[0,y] или даже f[a,y], где a - некоторая константа, будет ли Математика воспринимать это выражение верно, т.е. произойдет ли подстановка 0 или a в аргумент x функции f?

Отправлено: 09:05, 19-12-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата TaDa:
будет ли Математика воспринимать это выражение верно »
Да. В этом смысле она как человек. Если a чему-то присвоена, то сделает подстановку дальше. Если не надо делать, то лучше подать Hold[a]

Цитата TaDa:
получает в качестве аргумента True »
Выражение является тождеством?

Если есть непонятки с подстановкой граничных условий, то можно получить через DSolve общее решение, а затем через Solve частное.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:34, 19-12-2012 | #3


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


pva, спасибо, Ваш ответ был весьма полезен и в сущности разрешил мою проблему.

Могу я задать еще один вопрос, на этот раз относительно решения трансцендентных уравнений: каким образом можно задать область определения коэффициентов, входящих в него, и решения? То есть уравнение задано в символьном виде, и я хочу, чтобы Математика нашла его корни, например, только при положительных коэффициентах и только вещественные. Как я понимаю, нужно прописать что-то дополнительно в Solve[] - вот только что?

Отправлено: 17:29, 23-12-2012 | #4

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


У меня тоже не получилось заставить это сделать Solve. Но получилось отфильтровать конечные решения:

Select[x /. Solve[{(x^2 + 4)*(x - 2) == 0}], #1 \[Element] Reals & ]

Отправлено: 23:16, 24-12-2012 | #5


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


pva, а не могли бы расшифровать, что здесь написано? Просто еще не приходилось пользоваться этой функцией.

pva, кстати говоря, функция Reduce[] позволяет налагать ограничения на корень и фильтровать решения таким образом. Только вот в моем случае делает она это очень долго - фактически, я даже не знаю, завершится ли когда-нибудь этот процесс.

Отправлено: 06:19, 18-01-2013 | #6

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


TaDa,
Цитата pva:
Select[x /. Solve[{(x^2 + 4)*(x - 2) == 0}], #1 \[Element] Reals & ] »
тут написано Select[подстановка x->решение, лябда-функция: # є Reals &], всё очень хорошо описано в книжке, встроенной прямо в пакет.
Цитата TaDa:
кстати говоря, функция Reduce[] »
Да, тут надо поиграться, что окажется лучше

Отправлено: 22:25, 18-01-2013 | #7


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


pva, спасибо за расшифровку.

У меня теперь другая проблема:

задаю функцию таким образом: F1[x_,y_]:=D[F[x,y],x], где F[x,y] - некоторая функция, заданная ранее. Потом хочу вычислить F1[0,y], например. Математика начинает подставлять 0 повсюду, где видит x, и пишет, что 0 не является допустимым значением.

Вопрос: можно ли как-то обойти этот механизм?

При этом выписывать производную, что называется, "на живую" не хочется - выражение получается слишком громоздким. Да и Hold[0] не дает результата - ведь потом F1 должна войти в систему начальных условий, и последующие вычисления должны быть проделаны с подставленным нулем.

Отправлено: 19:38, 25-01-2013 | #8

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


убери двоеточие из присваивания - оно обозначает отложенное, т.е. сначала подставить, потом вычислить, или используй Evaluate:
Код: Выделить весь код
F1[x_,y_]=D[F[x,y],x]
или
F1[x_,y_]:=Evaluate[D[F[x,y],x]]

Отправлено: 11:10, 26-01-2013 | #9


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


pva, спасибо, этот способ действительно работает.

Вы случайно не знаете, почему Mathematica не может взять гиперболический косинус от числа пи? Возвращает Cosh[Pi]. Странно.

Отправлено: 08:54, 28-01-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Решение квадратных уравнений на С++ ShadowMas Программирование и базы данных 29 20-05-2011 17:23
Разное - [Paskal] решение систем дифференциальных уравнений методом Эйлера( доработка) Killer92 Программирование и базы данных 0 19-12-2010 13:21
C/C++ - Решение кубических уравнений на С++ XEN_STRANGER Программирование и базы данных 16 02-04-2009 14:19
Теория - Решение системы уравнений quaker_strelok Программирование и базы данных 3 23-09-2007 14:29
*Теория* | Решение системы линейных уравнений DeadBoy Программирование и базы данных 5 23-02-2005 17:12




 
Переход