我有一个任务是使用FindRoot
解决方程式系统:
a*x+b*y^2-c*x^2=a-b
,a*x^2+b*y^2+b*x-cy=b+c
,其中a = 10,b = 10,c = 6;
我非常(!)是Mathematica的新手,有一天能够了解它。
非常感谢任何关于如何解决这个等式的评论!
谢谢!
答案 0 :(得分:2)
这开始在x = 0
和y = 0
eq = {a*x + b*y^2 - c*x^2 == a - b, a*x^2 + b*y^2 + b*x - c*y == b + c}
param = {a -> 10, b -> 10, c -> 6}
result = FindRoot[eq /. param, {x, 0}, {y, 0}]
这只能为您提供两个Real解决方案中的一个。 Solve
会给你们两个(甚至一些带有复数的解决方案)。测试它:
eq /. param /. result
这会返回(True, True)
,因此您知道找到了正确的根。
要以图形方式查找解决方案,请使用ContourPlot
:
ContourPlot[Evaluate[eq /. param], {x, -5, 5}, {y, -5, 5}]
答案 1 :(得分:1)
以下是Solve / NSolve的版本
NSolve[{a*x + b*y^2 - c*x^2 == a - b,
a*x^2 + b*y^2 + b*x - c*y == b + c} /. {a -> 10, b -> 10, c -> 6},
{x, y}]
它将提供4种解决方案。如果您使用Solve而不是NSolve,那么每个解决方案的每个组件都会有一个(大)封闭形式。
如果您需要更多数字用于解决方案,请在NSolve命令的末尾添加选项WorkingPrecision->30
(或任何其他数字的数字。这些是二次方,它们可以根据任何精度计算)。