小团(○)子 2021-09-26 14:06 采纳率: 50%
浏览 31
已结题

matlab求解方程结果不一致

化简后:

vpasolve(exp(-4/c)==1-(2/(c+1)))

ans =

-9.9335590606703042639113467397029e42
化简前:

vpasolve(exp(-4/c)==(c-1)/(c+1),c)

ans =

-1.0923303728055610828117440088304e43

两次计算结果不一致,有知道的帮忙解答一下吗!

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-09-26 14:23
    关注

    同学你好,你有没有发现这个计算结果其实应该是正无穷吗?
    vpasolve给出的答案也不定是正确的,因为它的机理是给个初值,然后不断迭代获得等式两边之差小于某个临界值,然后就结束计算,由于你改写了一下右边的表达式,导致两个迭代函数并不一致(初值也不一致),在这种情况下得到的解也就会有差异,特别是正无穷这种解,并且可以看出这个时候matlab自动计算得到的解:正无穷才是解,emmm。
    所以建议自己给个初值,然后让matlab计算,比如

    syms c
    vpasolve(exp(-4/c)==1-(2/(c+1)),c,1)
    vpasolve(exp(-4/c)==(c-1)/(c+1),c,1)
    

    得到两个解为:

    ans =
     
    1.0443820337608334849840139063447
     
     
    ans =
     
    1.0443820337608334849840139063447
    
    

    这个解才是真正你需要的解吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月26日