公告:1)网站程序升级:Q2A升级到1.8.6,Wordpress升级到5.7.2
2)修复了头像加载慢与提交问题反应慢等问题
2021-06-16

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

+4 投票
2.0k 浏览
形如 F[x_,l_]:=f[x] BesselJ[l,g[x]]-BesselJ[l,g[x]] 的函数(f,g都已知,比如,f[x]=Sqrt[x^2+1]/Sqrt[x^2-1], g[x]=300 Sqrt[x^2-1]),欲求解其在如 -.5<= x<=.5内的所有零点。

尝试过(N)Solve和NDSolve, 都发现有可能出来漏解的情况。求一个能保证求得区间内所有解的方法。
用户: Alexander Zeng (51 分)

1个回答

–1 投票
尝试利用Assumption 函数,假设你的x的取值范围,然后再求解
用户: 落雨流觞 (1.0k 分)
-1。NSolve和NDSolve都没有Assumptions选项,并且,恐怕没有哪个具备Assumptions选项的函数能用于求解这个问题。还有,题主的问题实质上已经被上面的评论给答了,在本站活跃的用户大概没人能写出超越那帖的答案。
不能直接在外面用这个函数吗?不是Dsolve这个函数的内部选项
f[x_] := Sqrt[x^2 + 1]/Sqrt[x^2 - 1]
g[x_] := 300 Sqrt[x^2 - 1]
F[x_, l_] := f[x] BesselJ[l, g[x]] - BesselJ[l, g[x]]
Assuming[x >= -5 && x <= 5, Solve[F[x, 3] == 0, x]]


Solve::ifun: Solve 正在使用反函数,因此可能无法找到某些解;请使用 Reduce 来获取完整的解信息. >>

这个错误提示我不明白是为什么
Assuming也没用,因为这个函数只能对拥有Assumptions选项的函数添加假设,对于其他函数它是毫无效果的。Solve::ifun不是错误提示,而是警告信息,意义在于提示有问题的可能性。这条警告信息在自带帮助里的解说是比较清楚的,请仔细阅读。
之前没有仔细看,谢谢,受教了。
...