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

Аватара пользователя
TaDa

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

Сообщение TaDa »

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



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



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



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



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

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

Сообщение TaDa »

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



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



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

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

Сообщение pva »

Цитата TaDa:



будет ли Математика воспринимать это выражение верно
Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений




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




Цитата TaDa:



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




Выражение является тождеством?



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

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

Сообщение pva »

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



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

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

Сообщение TaDa »

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



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

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

Сообщение pva »

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



Select[x /. Solve[{(x^2 + 4)*(x - 2) == 0}], #1 \[Element] Reals & ]
Аватара пользователя
TaDa

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

Сообщение TaDa »

TaDa,


Цитата pva:



Select[x /. Solve[{(x^2 + 4)*(x - 2) == 0}], #1 \[Element] Reals & ]
Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений




тут написано Select[подстановка x->решение, лябда-функция: # є Reals &], всё очень хорошо описано в книжке, встроенной прямо в пакет.


Цитата TaDa:



кстати говоря, функция Reduce[]
Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений




Да, тут надо поиграться, что окажется лучше
Аватара пользователя
pva

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

Сообщение pva »

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



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



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



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



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

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

Сообщение TaDa »

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



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



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



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



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

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

Сообщение pva »

убери двоеточие из присваивания - оно обозначает отложенное, т.е. сначала подставить, потом вычислить, или используй Evaluate:



Код:

Код: Выделить всё

F1[x_,y_]=D[F[x,y],x]
или
F1[x_,y_]:=Evaluate[D[F[x,y],x]]
Ответить

Вернуться в «Программирование и базы данных»