【求助】怎么循环使用RootSearch以及RootSearchSample
mathematica吧
全部回复
仅看楼主
level 2
如题,在求一个方程的所有零点,可能这个方程比较复杂(包含合流超几何函数),总之用findroot,NSolve等求出来的零点都不全,后来看大佬 @xzcyr 的回复,安装了RootSearch,一开始求解很ok,后来换了个方程找出来的零点也不全了。查了下,发现用RootSearch算完之后,可以用RootSearchSample来找出几乎所有零点,于是打算这两个函数结合起来。
然后新的问题出现了,因为我要求很多个方程的零点,就用到了循环,RootSearch可以循环,循环结束后,不知道怎么循环使用RootSearchSample,不知道循环变量该放哪,怎么写,试了几个都不行。
请大佬帮帮孩子吧!
用到的主要代码:
soln = Table[
RootSearch[w[[i]] == 0, {ky, kymin[[i]], kymax[[i]]}], {i, 10}]
Cases[RootSearchSamples, {_, _?(Abs[#] < 0.000000001 &)}] // TableForm (这行是从RootSearch说明文档里复制的,不知道写循环)
2022年07月20日 10点07分 1
吧务
level 15
……你的问题问得很不清楚,但我好像还是看明白了。
“循环结束后,不知道怎么循环使用RootSearchSample,不知道循环变量该放哪,怎么写,试了几个都不行。”结束后就晚了,帮助里已经说得很清楚了:
RootSearchSamples returns a list of points where the equation given to RootSearch was sampled during
the last use of RootSearch.
也就是说这个变量只存一组。如果你要保留其中数据,必须每次调用RootSearch后就立刻保存。
最后,去把精品区《别用For循环,它在Mathematica里又慢又不简洁,百害无一利!》那帖看了。
2022年08月06日 09点08分 3
好的,谢谢!不好意思呀,mathematica用的很少,自己也在努力理解我要问啥。。。上次这个问题后来硬是调整求解范围,基本上把需要的解都求出来了,没有用到RootSearchSamples,最近又有一个类似但不同的方程,发现调整求解范围也没法求出想要的解。
2023年04月23日 04点04分
怕自己一开始思路就有问题,这次把问题从头描述了下,不知道能不能麻烦大佬帮忙看一下呀?不胜感激~~~ https://tieba.baidu.com/p/8376876918?pid=147447626776&cid=0#147447626776
2023年04月23日 04点04分
啊,把RootSearchSamples加入到循环里了,但是一放进循环,这个求的根也不全了。。。这要咋办呀?求指点[泪]
2023年04月23日 09点04分
1