Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
-
TaDa
Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
Здравствуйте, друзья!
Следующая проблема: имеется система из двух дифференциальных уравнений, решением которой является бигармоническая функция, имеется 8 начальных условий. Решение произвожу средствами стандартной функции DSolve[]. Начальные условия задаю следующим образом:
начальное_условие1 := выражение == 0 .
Загвоздка состоит в том, что когда функция DSolve[] начинает вычислять, она проверяет начальные условия и получает в качестве аргумента True, а не систему равенств; иными словами, насколько я понял механизм, сначала Математика проверяет истинность начальных условий, а потом передает в DSolve[] в качестве аргумента логическую переменную - True или False (вернее, 8 логических переменных - по одной на каждое из начальных условий).
В общем, как мне справиться с этим камнем преткновения?
Следующая проблема: имеется система из двух дифференциальных уравнений, решением которой является бигармоническая функция, имеется 8 начальных условий. Решение произвожу средствами стандартной функции DSolve[]. Начальные условия задаю следующим образом:
начальное_условие1 := выражение == 0 .
Загвоздка состоит в том, что когда функция DSolve[] начинает вычислять, она проверяет начальные условия и получает в качестве аргумента True, а не систему равенств; иными словами, насколько я понял механизм, сначала Математика проверяет истинность начальных условий, а потом передает в DSolve[] в качестве аргумента логическую переменную - True или False (вернее, 8 логических переменных - по одной на каждое из начальных условий).
В общем, как мне справиться с этим камнем преткновения?
-
TaDa
Re: Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
Да, и еще 1 вопрос по теме: если я задал функцию в виде:
f[x_,y_] := x^2+y^2;
а потом далее в программе использую f[0,y] или даже f[a,y], где a - некоторая константа, будет ли Математика воспринимать это выражение верно, т.е. произойдет ли подстановка 0 или a в аргумент x функции f?
f[x_,y_] := x^2+y^2;
а потом далее в программе использую f[0,y] или даже f[a,y], где a - некоторая константа, будет ли Математика воспринимать это выражение верно, т.е. произойдет ли подстановка 0 или a в аргумент x функции f?
-
pva
Re: Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
Цитата TaDa:
будет ли Математика воспринимать это выражение верно
Да. В этом смысле она как человек. Если a чему-то присвоена, то сделает подстановку дальше. Если не надо делать, то лучше подать Hold[a]
Цитата TaDa:
получает в качестве аргумента True
Выражение является тождеством?
Если есть непонятки с подстановкой граничных условий, то можно получить через DSolve общее решение, а затем через Solve частное.
будет ли Математика воспринимать это выражение верно
Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
Да. В этом смысле она как человек. Если a чему-то присвоена, то сделает подстановку дальше. Если не надо делать, то лучше подать Hold[a]
Цитата TaDa:
получает в качестве аргумента True
Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
Выражение является тождеством?
Если есть непонятки с подстановкой граничных условий, то можно получить через DSolve общее решение, а затем через Solve частное.
-
pva
Re: Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
pva, спасибо, Ваш ответ был весьма полезен и в сущности разрешил мою проблему.
Могу я задать еще один вопрос, на этот раз относительно решения трансцендентных уравнений: каким образом можно задать область определения коэффициентов, входящих в него, и решения? То есть уравнение задано в символьном виде, и я хочу, чтобы Математика нашла его корни, например, только при положительных коэффициентах и только вещественные. Как я понимаю, нужно прописать что-то дополнительно в Solve[] - вот только что?
Могу я задать еще один вопрос, на этот раз относительно решения трансцендентных уравнений: каким образом можно задать область определения коэффициентов, входящих в него, и решения? То есть уравнение задано в символьном виде, и я хочу, чтобы Математика нашла его корни, например, только при положительных коэффициентах и только вещественные. Как я понимаю, нужно прописать что-то дополнительно в Solve[] - вот только что?
-
TaDa
Re: Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
pva, спасибо, Ваш ответ был весьма полезен и в сущности разрешил мою проблему.
Могу я задать еще один вопрос, на этот раз относительно решения трансцендентных уравнений: каким образом можно задать область определения коэффициентов, входящих в него, и решения? То есть уравнение задано в символьном виде, и я хочу, чтобы Математика нашла его корни, например, только при положительных коэффициентах и только вещественные. Как я понимаю, нужно прописать что-то дополнительно в Solve[] - вот только что?
Могу я задать еще один вопрос, на этот раз относительно решения трансцендентных уравнений: каким образом можно задать область определения коэффициентов, входящих в него, и решения? То есть уравнение задано в символьном виде, и я хочу, чтобы Математика нашла его корни, например, только при положительных коэффициентах и только вещественные. Как я понимаю, нужно прописать что-то дополнительно в Solve[] - вот только что?
-
pva
Re: Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
У меня тоже не получилось заставить это сделать Solve. Но получилось отфильтровать конечные решения:
Select[x /. Solve[{(x^2 + 4)*(x - 2) == 0}], #1 \[Element] Reals & ]
Select[x /. Solve[{(x^2 + 4)*(x - 2) == 0}], #1 \[Element] Reals & ]
-
TaDa
Re: Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
TaDa,
Цитата pva:
Select[x /. Solve[{(x^2 + 4)*(x - 2) == 0}], #1 \[Element] Reals & ]
тут написано Select[подстановка x->решение, лябда-функция: # є Reals &], всё очень хорошо описано в книжке, встроенной прямо в пакет.
Цитата TaDa:
кстати говоря, функция Reduce[]
Да, тут надо поиграться, что окажется лучше
Цитата 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, спасибо за расшифровку.
У меня теперь другая проблема:
задаю функцию таким образом: F1[x_,y_]:=D[F[x,y],x], где F[x,y] - некоторая функция, заданная ранее. Потом хочу вычислить F1[0,y], например. Математика начинает подставлять 0 повсюду, где видит x, и пишет, что 0 не является допустимым значением.
Вопрос: можно ли как-то обойти этот механизм?
При этом выписывать производную, что называется, "на живую" не хочется - выражение получается слишком громоздким. Да и Hold[0] не дает результата - ведь потом F1 должна войти в систему начальных условий, и последующие вычисления должны быть проделаны с подставленным нулем.
У меня теперь другая проблема:
задаю функцию таким образом: F1[x_,y_]:=D[F[x,y],x], где F[x,y] - некоторая функция, заданная ранее. Потом хочу вычислить F1[0,y], например. Математика начинает подставлять 0 повсюду, где видит x, и пишет, что 0 не является допустимым значением.
Вопрос: можно ли как-то обойти этот механизм?
При этом выписывать производную, что называется, "на живую" не хочется - выражение получается слишком громоздким. Да и Hold[0] не дает результата - ведь потом F1 должна войти в систему начальных условий, и последующие вычисления должны быть проделаны с подставленным нулем.
-
TaDa
Re: Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
pva, спасибо за расшифровку.
У меня теперь другая проблема:
задаю функцию таким образом: F1[x_,y_]:=D[F[x,y],x], где F[x,y] - некоторая функция, заданная ранее. Потом хочу вычислить F1[0,y], например. Математика начинает подставлять 0 повсюду, где видит x, и пишет, что 0 не является допустимым значением.
Вопрос: можно ли как-то обойти этот механизм?
При этом выписывать производную, что называется, "на живую" не хочется - выражение получается слишком громоздким. Да и Hold[0] не дает результата - ведь потом F1 должна войти в систему начальных условий, и последующие вычисления должны быть проделаны с подставленным нулем.
У меня теперь другая проблема:
задаю функцию таким образом: F1[x_,y_]:=D[F[x,y],x], где F[x,y] - некоторая функция, заданная ранее. Потом хочу вычислить F1[0,y], например. Математика начинает подставлять 0 повсюду, где видит x, и пишет, что 0 не является допустимым значением.
Вопрос: можно ли как-то обойти этот механизм?
При этом выписывать производную, что называется, "на живую" не хочется - выражение получается слишком громоздким. Да и Hold[0] не дает результата - ведь потом F1 должна войти в систему начальных условий, и последующие вычисления должны быть проделаны с подставленным нулем.
-
pva
Re: Разное - [Wolfram Mathematica] - Решение системы интегральных уравнений
убери двоеточие из присваивания - оно обозначает отложенное, т.е. сначала подставить, потом вычислить, или используй Evaluate:
Код:
Код:
Код: Выделить всё
F1[x_,y_]=D[F[x,y],x]
или
F1[x_,y_]:=Evaluate[D[F[x,y],x]]