Возьмите положительный квадратный корень в Mathematica

Я в настоящее время делаю некоторую нормализацию вроде:

J = Integrate[Psi[x, 0]^2, {x, 0, a}]
sol = Solve[J == 1, A]
A /. sol

Для этого типа нормализации отрицательный квадратный корень является посторонним. Результат этого вычисления:

In[49]:= J = Integrate[Psi[x, 0]^2, {x, 0, a}]
Out[49]= 2 A^2

In[68]:= sol = Solve[J == 1, A]
Out[68]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}}

Даже если я пытаюсь дать ему Принятие [...] или Упрощаю [...], это все еще дает мне те же результаты:

In[69]:= sol =  Assuming[A > 0, Solve[J == 1, A]]
Out[69]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}}

In[70]:= sol =  FullSimplify[Solve[J == 1, A], A > 0]
Out[70]= {{A -> -(1/Sqrt[2])}, {A -> 1/Sqrt[2]}}

Кто-либо может сказать мне, что я делаю неправильно здесь?

Я выполняю Mathematica 7 в 64-разрядном Windows 7.

6
задан Mike Bailey 23 January 2012 в 05:07
поделиться

2 ответа

Solve так не работает. Вместо этого можно попробовать Reduce, например,

In[1]:= Reduce[{x^2 == 1, x > 0}, x]
Out[1]= x == 1

Затем немного сложно преобразовать этот вывод в правила замены, по крайней мере, в общем случае, потому что Reduce может использовать произвольное количество логических связок. В этом случае мы можем просто взломать:

In[2]:= Solve[Reduce[{x^2 == 1, x > 0}, x], x]
Out[2]= {{x->1}}
4
ответ дан 10 December 2019 в 02:43
поделиться

ToRules выполняет то, что указано в поле: преобразует уравнения (как в Сокращение вывода ) в правила. В вашем случае:

In[1]:= ToRules[Reduce[{x^2==1,x>0},x]]
Out[1]= {x->1}

In[2]:= {ToRules[Reduce[{x^2==1},x]]}
Out[2]= {{x->-1},{x->1}}  

Для более сложных случаев я часто находил полезным просто проверять значение символических решений после вставки типичных значений параметров. Конечно, это не надежно, но если вы знаете, что есть одно и только одно решение, тогда это простой и эффективный метод:

Solve[x^2==someparameter,x]
Select[%,((x/.#)/.{someparameter-> 0.1})>0&]

Out[3]= {{x->-Sqrt[someparameter]},{x->Sqrt[someparameter]}}
Out[4]= {{x->Sqrt[someparameter]}}
5
ответ дан 10 December 2019 в 02:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: