Mathematica学习(4)-解方程

本文介绍了如何使用Mathematica10求解各种类型的方程,包括单个方程、方程组、无理方程及数值解。通过Solve、NSolve、FindRoot和Reduce等函数,详细展示了求解过程及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来自:http://blog.sina.com.cn/s/blog_7022f5090102vow7.html

How to运用Mathematica 10| 解方程

Wolfram 语言具有许多强大的功能,使您能够求解多种类型的方程.

可以用 Solve 求解一个方程. 在方程中要使用 "==",而不是 "=":

In[1]:=

Click for copyable input

Out[1]=

结果是一个双嵌套列表内部的 Rule. 外层的列表将所有的解包括,而每一个内层列表包括一个单解. 这是方程的三个解:

In[2]:=

Click for copyable input

Out[2]=

如要求解一个方程组,用一个列表作为第一个参数:

In[3]:=

Click for copyable input

Out[3]=

这是一联立方程组的两个解;每个解集被包在自己的列表中:

In[4]:=

Click for copyable input

Out[4]=

此处的解将一个变量用另外一个变量表示:

In[5]:=

Click for copyable input

Out[5]=

如要使用其中的一个解(此处显示的是第一个解),使用 Part 的简写形式)将它从解的列表中提取出来,并使用 ReplaceAll 的简写形式)应用该规则:

In[6]:=

Click for copyable input

Out[6]=

例如,这是  取不同  值时的图形,假定第一个解成立:

In[7]:=

Click for copyable input

Out[7]=

在多变量的方程组中,可将一个列表用作第二个参数,求解部分或全部变量:

In[8]:=

Click for copyable input

Out[8]=

对于欠定方程组,Wolfram 语言将把一个结果用其余变量表示:

In[9]:=

Click for copyable input

Out[9]=

Solve 求的是方程所谓的通用解. 这些解只依赖于在第二个参数中指定的变量. 例如:

In[10]:=

Click for copyable input

Out[10]=

不管  取何值, 为零就使方程得以求解. 但仍有另一个解取决于 : 即  为 0. 将  添加到第二个参数使得这个解出现:

In[11]:=

Click for copyable input

Out[11]=

另外,还存在一些情形,Solve 不能得到每个解. 例如:

In[12]:=

Click for copyable input

Out[12]=

您也可求解无理方程:

In[13]:=

Click for copyable input

Out[13]=

请注意,在无理方程中 Solve 将舍掉寄生解. 如要查看所有的可能解,包括寄生解在内,需将 VerifySolutions选项设置为 False

In[14]:=

Click for copyable input

Out[14]=

检查解:

In[15]:=

Click for copyable input

Out[15]=

也可使用 Reduce 求解方程:

In[16]:=

Click for copyable input

Out[16]=

Reduce 的输出不同于 Solve 的输出:Reduce 输出的是一个等价于原方程的逻辑表达式,因此它不会漏掉任何一个解:

In[17]:=

Click for copyable input

Out[17]=
In[18]:=

Click for copyable input

Out[18]=

    

Wolfram 语言同样允许您得到方程的数值解.

例如,您可以将 N 用于 Solve 的输出,得到符号式解的数值近似:

In[1]:=

Click for copyable input

Out[1]=
In[2]:=

Click for copyable input

Out[2]=

也可使用 NSolve 直接得到数值解,这比结合使用 N 和 Solve 的方法要快:

In[3]:=

Click for copyable input

Out[3]=

用 NSolve 求解一个较为复杂的多项式方程:

In[4]:=

Click for copyable input

In[5]:=

Click for copyable input

Out[5]=

也可使用 NSolve 求方程组的数值解. 所用的语法与 Solve 的相同:

In[6]:=

Click for copyable input

Out[6]=

如果您的方程只涉及线性方程或多项式,可以使用 NSolve 得到所有解的数值近似. 然而,如果方程涉及更加复杂的函数, 则一般没有系统化步骤可遵循来获得所有的解,即使是数值解也是如此. 这种时候,可以使用 FindRoot 来搜索解.

使用 FindRoot 搜索  的数值解,从1开始:

In[7]:=

Click for copyable input

Out[7]=

来源: <http://reference.wolfram.com/language/howto/SolveAnEquation.html>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值