Mathematica:'Findroot'未返回预期结果

时间:2018-03-21 19:08:38

标签: compiler-errors formatting wolfram-mathematica

我目前正在做一个涉及使用预定义函数的小项目我绘制了函数,我正在尝试使用提供的y坐标找到x值的答案。我确信可能还有其他方法,但我必须使用这个特殊的功能。以下是我目前的情况:

F[L_] := (ArcTan[(L + 80)/25]/Pi + 0.6)*(0.55 - 
    0.4*Cos[(Pi/100)*(L + 10)])

FindRoot[F[L] == 0.8, {x, 55}]

我确信我的功能是正确的,因为我能够检索出适合该功能的图形。

我不确定是否应该尝试更改“55”值?

以下是我从该计划收到的错误:

FindRoot::nlnum

2 个答案:

答案 0 :(得分:1)

FindRoot你有F [L],但是你试图从x=55开始 - 你已经混淆了你的变量。在L中将x或两者都设为FindRoot

FindRoot[F[L] == 0.8, {L, 55}]
(* {L -> 58.2501} *)

目前正在寻找从L=55开始的解决方案,还有其他解决方案可以提供更大的L值:

FindRoot[F[L] == 0.8, {L, 155}]
(* {L -> 122.963} *)

答案 1 :(得分:1)

f[x_] := (ArcTan[(x + 80)/25]/Pi + 0.6) (0.55 - 0.4 Cos[(Pi/100) (x + 10)])

Plot[{f[x], 0.8}, {x, -1000, 1000}]

enter image description here

NSolve[{f[x] == 0.8, 0 < x < 1000}, x]
{{x -> 58.2501}, {x -> 122.963}, {x -> 256.049}, {x -> 324.199}, {x -> 455.505},
 {x -> 524.599}, {x -> 655.26}, {x -> 724.797}, {x -> 855.12}, {x -> 924.915}}