找回密码
 注册
Simdroid-非首页
查看: 145|回复: 4

[符号计算] 方程求解如何只获得正解

[复制链接]
发表于 2012-2-17 10:34:42 | 显示全部楼层 |阅读模式 来自 英国
本帖最后由 qiao_david 于 2012-2-17 10:45 编辑

对于复杂的方程,用solve很难解出,用findroot但当有两个解时,一个为负,一个为正,如何直接获得正解。因为正解的数值不知,如FindRoot[f[x]==0, {x,10}],因为x值的正解未知,所以x的初始值10不确定是否距离正解近。是否有什么好的办法?谢谢。
如根据速度的表达式求解速度为0时的时间,因为加速度为t的函数,速度为t 的非线性函数,所以解不具唯一性,但有一点,必须是正值,所以要确定所求的解为正即可解决问题。
发表于 2012-2-17 18:37:46 | 显示全部楼层 来自 北京
Simdroid开发平台
对于不确定性问题,还是需要通过循环迭代的方法来探索,Mathematica很难给你一步到位的给出答案。
回复 不支持

使用道具 举报

发表于 2012-2-17 19:15:28 | 显示全部楼层 来自 台湾
  1. FindMinimum[{f[x]^2, x > 0}, {x, 10}]
复制代码
回复 不支持

使用道具 举报

 楼主| 发表于 2012-2-19 04:38:54 | 显示全部楼层 来自 英国
本帖最后由 qiao_david 于 2012-2-25 00:23 编辑

感谢。用for+if语句可以解决。用findinstance可以解多个条件约束的方程解的问题。
回复 不支持

使用道具 举报

发表于 2012-4-30 19:56:19 | 显示全部楼层 来自 德国
  1. sol = Solve[x^2 == 1, x]; x = x /. sol; Select[x, Positive[#] &]
复制代码

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-20 08:32 , Processed in 0.030457 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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