通解和非通解

如有一个方程 ,显然仅有的解是 . 但是如果有方程 ,事情就不那么清楚了. 当 不等于零时,仍然有唯一解 . 然而,当 实际上等于零时,那么 任何 值都是解. 可以使用 Reduce 查看这些功能.

Solve 隐含假定参数 不为 .
In[1]:=
Click for copyable input
Out[1]=
然而,Reduce 给出所有的可能性,不做任何关于 值的假定.
In[2]:=
Click for copyable input
Out[2]=

ReduceSolve 之间最重要的区别在于 Reduce 给出方程组的全部 解,而 Solve 仅给出通解. 通解是指只涉及要求的变量条件,而不涉及方程中参数的条件. ReduceSolve 的另一个区别是 Reduce 总是返回方程的组合,而 Solve 给出变换规则形式的结果.

Solve[eqns,vars]求方程的通解
Reduce[eqns,vars]化简方程,保留全部解

解方程.

这是由 Solve 给出的任意线性方程的解.
In[3]:=
Click for copyable input
Out[3]=
Reduce 给出其全部解,包括 的可能性. 注意,输出中 的优先级高.
In[4]:=
Click for copyable input
Out[4]=
这是一般二次方程的全部解. 有三种选择. 当 不等于零时,由标准二次公式给出 的两个解. 当 等于零时,方程退化为线性方程. 最后如果 全为0,则对 无限制.
In[5]:=
Click for copyable input
Out[5]=

当用户具有一些联立方程组时,Reduce 可以发现在什么条件下方程组有解. 而 Solve 则告诉用户是否存在通解.

这个方程组无解.
In[6]:=
Click for copyable input
Out[6]=
这个方程组仅当 取特殊值  时有一个解.
In[7]:=
Click for copyable input
Out[7]=
该解不是通解. 故被 Solve 拒绝.
In[8]:=
Click for copyable input
Out[8]=
若限制 等于 ,那么 Solve 也能给出解.
In[9]:=
Click for copyable input
Out[9]=
此方程对任何  值都成立.
In[10]:=
Click for copyable input
Out[10]=
这是当方程对任何值都成立时,Solve 返回的结果.
In[11]:=
Click for copyable input
Out[11]=

对于线性方程组,可以使用 Solve 得到通解,使用 Reduce 弄清参数在什么值下解存在.

这里是一个矩阵,其第 个元素是 .
In[12]:=
Click for copyable input
Out[12]=
该矩阵的行列式为零.
In[13]:=
Click for copyable input
Out[13]=
这里建立三个方程的联立方程组.
In[14]:=
Click for copyable input
Out[14]=
Solve 报告没有通解.
In[15]:=
Click for copyable input
Out[15]=
然而,Reduce 表明如果参数满足特定条件 ,那么方程组有解.
In[16]:=
Click for copyable input
Out[16]=

对于非线性方程,解的存在性可能是非常复杂的.

这里是一个非常简单的二元非线性方程组.
In[17]:=
Click for copyable input
Out[17]=
Solve 显示该方程组没有一般解.
In[18]:=
Click for copyable input
Out[18]=
Reduce 给出解存在的完全条件.
In[19]:=
Click for copyable input
Out[19]=
New to Mathematica? Find your learning path »
Have a question? Ask support »