代码之家  ›  专栏  ›  技术社区  ›  Apple Cola

Mathematica:“Findroot”未返回预期结果

  •  1
  • Apple Cola  · 技术社区  · 6 年前

    我目前正在做一个小项目,涉及使用一个预定义的函数,我绘制了该函数的图形,我正在尝试使用提供的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 回复  |  直到 6 年前
        1
  •  1
  •   SPPearce    6 年前

    在您的 FindRoot 你有F[L],但你要从 x=55 -你把变量搞混了。要么两者兼而有之 L 或者两者都是 x 芬德罗特

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

    目前,它正在寻找一种解决方案,从 L=55 ,对于更大的 L :

    FindRoot[F[L] == 0.8, {L, 155}]
    (* {L -> 122.963} *)
    
        2
  •  1
  •   Chris Degnen Akila Dilan Md    6 年前
    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}}