声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1337|回复: 4

[编程技巧] 请教求解方程组的多组根问题

[复制链接]
发表于 2006-7-27 18:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
现有非线性的二元二次方程组,一般情况下是给一个初值就会有一组解.
而我现在想得到某个范围内的所有实根,是不是只有通过循环给初值来得到?

但循环的话,由于有两个变量x和y,所以会面临二重循环,假设下标为i,j的话,返回值x的维数该如何确定?

即通常会是这样:
[x]=fsolve(@fun,[x0,y0])
现在怎么表示比较好:
[x(?)]=fsolve(@fun,[x0(i),y0(j)])

如果不应该采用这种表示方法的话,请教用什么方法会合理一些?

还有,如果可行的话,求出的根必然会有重复的,在二维情况下,如何才可以实现unique的功能?
请教有没有可以防止失根或多根的方法?

谢谢!
回复
分享到:

使用道具 举报

发表于 2006-7-28 20:54 | 显示全部楼层
fsolve对初值要求很严格,不推荐;用solve试试看呢
 楼主| 发表于 2006-7-28 21:57 | 显示全部楼层
原帖由 grta 于 2006-7-28 20:54 发表
fsolve对初值要求很严格,不推荐;用solve试试看呢


就是因为solve不能给初值,我才选择用fsolve的.
如果用solve,只能得到它给出的解,而不能求出我想得到的范围内的解

谢谢!
发表于 2006-7-29 08:18 | 显示全部楼层
solve能够给出复数域内的所有根,得出所有根之后,看看哪些是你需要的不就行了
 楼主| 发表于 2006-7-29 12:55 | 显示全部楼层
原帖由 grta 于 2006-7-29 08:18 发表
solve能够给出复数域内的所有根,得出所有根之后,看看哪些是你需要的不就行了


因为试过了,得不到所有解,才不得不用其它命令的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-20 04:46 , Processed in 0.060852 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表