当前位置: 首页 > 程序语言 >已知因变量,反求自变量怎么不对?

已知因变量,反求自变量怎么不对?

作者 凡凡.
来源: 小木虫 150 3 举报帖子
+关注

已知自变量,代入式子里可以得到结果如下:
A=0.0202;
R=exp(-(A^(1/0.3)+(0.5*A)^(1/0.3)+(0.7*A)^(1/0.3)+(2.5*A)^(1/0.3))^0.3)
计算结果R=0.9498
但问题是,如果在已知因变量前提下,计算反求自变量的结果就不对,程序如下:
syms A;
R=exp(-(A^(1/0.3)+(0.5*A)^(1/0.3)+(0.7*A)^(1/0.3)+(2.5*A)^(1/0.3))^0.3)==0.9498;
A= solve(R,A)
计算结果A=- 0.0062449786514623550087207310000765 - 0.019220067985616604743236887692232*i
请问这怎么解释呢? 返回小木虫查看更多

今日热帖
  • 精华评论
  • raymond137

    数据溢出

  • 虚拟更真实

    拿 Matlab 试了试,这是报错

    警告: Unable to solve symbolically. Returning a numeric solution using vpasolve.
    > In sym/solve (line 304)

    Emmmm, 溢出了。
    换个思路,试试 fsolve ?

  • 虚拟更真实

    引用回帖:
    3楼: Originally posted by 虚拟更真实 at 2021-05-26 00:02:51
    拿 Matlab 试了试,这是报错

    警告: Unable to solve symbolically. Returning a numeric solution using vpasolve.
    > In sym/solve (line 304)

    Emmmm, 溢出了。
    换个思路,试试 fsolve ?

    试了试,改用 fsolve 后:
    CODE:
    fun = @(A) exp(-(A^(1/0.3)+(0.5*A)^(1/0.3)+(0.7*A)^(1/0.3)+(2.5*A)^(1/0.3))^0.3) - 0.9498 ;
    fsolve( fun , 0 )

    得到的根是:

    ans =

            0.0202091754340323

    很接近了,数值上已经满足默认精度了
    (回复似乎不支持 Markdown...
    (应该不算是灌水吧

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