matlab如何实现求一个数的未知数次方等于常数

其实我要求的是超越方程的解,为了编程,这里只举个例子,虽然这个例子能反解未知数后用其他计算器算出,但是我的超越方程不能反解未知数。而我对MATLAB不熟悉,不知道它是否具有超越代数式的指令,故作此举例。谢谢你们为我指点,用不着太详细,如有超越代数式指令,只需告知即可。追加10
一楼:请问你的shift+6是指数的标志吗,如果是的话,为什么不用solve呢?这两天有点忙,等我空闲时,如果做的总结与你那个符合的话,我会选你的

简单啊:比如3^x=2,
--->先化为3^x-2=0(右边为0),然后用命令:
b=fzero(inline('3^x-2'),1);就可以了

不信可将得到的结果代回验证。。。

其它的类似啦,有问题的话自行补充
-------------------------------------
也补充:
1.是的,^表示指数
2.solve也是可以的,但是它一般用于解方程组,从速度上说比较慢,有时候解不出,甚至卡死掉,当然,如果能解出的话比fzero好,比较精确,而且如果有多个值的话,会都显出来,而fzero一次只显一个值。
3.用fezo,你可以先画出图形,看个大概,再取零点附近的点做初值,效率会高些,因为你说的是超越方程,我觉得很可能用fzero.其实这两个都可以试试的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-23
输入下面4行命令即可。
>>
h=29.8149;
b=68.4982*0.5;
>>
syms
x
>>
123.5;
hr=h/b;
xr=x/b;
a=1/((hr^2+xr^2)^0.5);
b=hr/sqrt(1+xr^2);
s1=(1/pi)*(atan(1/xr)-a*xr*atan(a));
s2=(1/pi)*(xr*a*atan(a)+(b/hr)*atan(b));
s=((s1)^2+(s2)^2)^0.5
>>
fsolve(@(t)
(subs(s,x,t)-.1010251),0)
利用的是matlab的非线性方程求解函数。