当前位置: 首页 > 程序语言 >一个并不复杂的方程,solve为何死循环?

一个并不复杂的方程,solve为何死循环?

作者 翻身仗
来源: 小木虫 300 6 举报帖子
+关注

代码如下:

ta = 4.05756866;
syms x
fc = exp( -( (-log(x))^ta  )^( 1/ta ) ) == 0.999;
sf = solve(fc,x)  

点击运行之后,一直是运行状态,没有结果,死循环,什么原因呢? 返回小木虫查看更多

今日热帖
  • 精华评论
  • 翻身仗

    引用回帖:
    2楼: Originally posted by lwloveflxgg at 2019-09-03 13:20:58
    ……你这一层又一层套的
    最后还不是fc=x
    不知道写这么多干嘛

    首先感谢您的指点。。
    这个方程不是固定的,这只是取极值时的特殊情况,但是这种情况下,solve 也是死循环

  • hzlhm

    你的错误是solve函数内的表达式有错误。应该这样来求解
    ta = 4.05756866;
    syms x
    fc = exp(-((-log(x))^ta)^(1/ta)) ;
    sf = solve(fc== 0.999)
    一个并不复杂的方程,solve为何死循环?
    123.jpg

  • 翻身仗

    引用回帖:
    4楼: Originally posted by hzlhm at 2019-09-04 16:38:58
    你的错误是solve函数内的表达式有错误。应该这样来求解
    ta = 4.05756866;
    syms x
    fc = exp(-((-log(x))^ta)^(1/ta)) ;
    sf = solve(fc== 0.999)

    123.jpg
    ...

    首先感谢您的指点。。仍有两个问题敬请赐教:
    (1)这个方程是有实数解析解的,但 solve 没给出。
    (2)我按照您给的代码复制粘贴,但在我的计算机上仍然是死循环状态,没有结果。不知道是不是系统设置的问题

  • 翻身仗

    引用回帖:
    4楼: Originally posted by hzlhm at 2019-09-04 16:38:58
    你的错误是solve函数内的表达式有错误。应该这样来求解
    ta = 4.05756866;
    syms x
    fc = exp(-((-log(x))^ta)^(1/ta)) ;
    sf = solve(fc== 0.999)

    123.jpg
    ...

    更正一下我刚才的回复中的第二个问题:按照您的代码,方程可以给出复数解,但是运行时间偏长

  • googon

    没有循环哪来死循环呢?你的这个方程只有一个未知数,为何不试试数值方法呢?

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓