wwwaiting 发表于 2009-3-25 14:41

求!Matlab的二元二次方程组解法

我遇到一个难题,如何用Matlab程序求解下面的方程组,谢谢各位同学的指教!
方程组:(x-x1)^2+(y-y1)^2=a
             (x-x2)^2+(y-y2)^2=c
             y=kx+b
其中x1,x2,y1,y2,a,b,c,k都是可输入的常数,求解x,y的值,请问如何编写Matlab程序?

karl_wang 发表于 2009-3-25 16:38

这个是非线性方程,可以采用X=fsolve('fun',X0)求解。
以上是建议,供参考!

baiyh2008 发表于 2009-3-26 01:27

Matlab解非线性方程组有多种解法,常用的有符号解法和数值解法,符号解法可以得到解析解,而数值方法需要给出最初的猜测值,然后得到数值解。你的方程可以直接用符号解法求得:

syms x y x1 x2 y1 y2 a b c

f = [(x-x1)^2+(y-y1)^2-a;
    (x-x2)^2+(y-y2)^2-c]
=solve(f(1),f(2))

mnpfc 发表于 2009-3-26 08:00

进来学习下

wwwaiting 发表于 2009-3-26 15:42

2# karl_wang
谢谢哦~~ 是不是用solve也可以解决呢?如果在二次方程的等式右边再加个随机数,那个随机数怎么实现呢?

wwwaiting 发表于 2009-3-26 15:46

3# baiyh2008
谢谢~~好像可以这个样子,我还有个问题同上面的问题。。。

karl_wang 发表于 2009-3-26 16:54

2# karl_wang  
谢谢哦~~ 是不是用solve也可以解决呢?如果在二次方程的等式右边再加个随机数,那个随机数怎么实现呢?
wwwaiting 发表于 2009-3-26 15:42 http://www.madio.cn/mcm/images/common/back.gif
你可以给一个数赋一个随机值,然后加在等式的右边,这样应该可以的。

baiyh2008 发表于 2009-3-26 22:00

sorry! there is an error in orignal code, you have to define independent variables (x and y) in 'solve' command,

=solve(f(1), f(2), 'x','y')
Xx = simplify(X)
Yy = simplify(Y)

In addition, describe more details for your second question. It will be good for solving.

jingyiloveyou 发表于 2010-8-2 17:37

为啥solve的结果中含有复数,并且结果明显不对??
页: [1]
查看完整版本: 求!Matlab的二元二次方程组解法