Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 求解给定变量的超越方程?_Matlab - Fatal编程技术网

Matlab 求解给定变量的超越方程?

Matlab 求解给定变量的超越方程?,matlab,Matlab,我试图解这个超越方程 x=((g*T^2)/(2*pi))*tanh(2*pi*d/x) 在哪里 g=重力常数(9.81 m/s^2) T=我的信号周期 d=水深(m) 对于给定的g,T和d,我想解x 这是Matlab在运行代码后发给我的 g=9.81; d=3; t=100; syms x s='g*t*tanh(2*pi*d/x)-x=0'; -1*solve(s) Warning: Explicit solution could n

我试图解这个超越方程

x=((g*T^2)/(2*pi))*tanh(2*pi*d/x)

在哪里

g=重力常数(9.81 m/s^2)

T=我的信号周期

d=水深(m)

对于给定的g,T和d,我想解x

这是Matlab在运行代码后发给我的

    g=9.81;
    d=3;
    t=100;
    syms x
    s='g*t*tanh(2*pi*d/x)-x=0';
    -1*solve(s)

    Warning: Explicit solution could not be found. 
    > In solve at 179
    In Itteration at 6 

    ans =

    [ empty sym ]
我写-1*solve(s)是因为我想要肯定的答案,但这并不重要。我查了很多关于超越方程的答案和问题,但什么也没找到。。但是,有一个答案与我的问题相同:

他得到了和我一样的“空符号”。我可以在代码中用g、T和d的数值来解方程,但一旦我放入变量,它就会给我同样的错误

救命

费利克斯·布莱斯

我试过这个:

s='9.81*100*tanh(2*pi*3/x)-x=0'

而不是

s='g*t*tanh(2*pi*d/x)-x=0';

这不起作用,还可以,但不知道为什么。

我是用
fzero
做的。我首先绘制了函数,以获得开始查找的近似值

g=9.81;
d=3;
t=100;
func=@(x)(g*t*tanh(2*pi*d*1./x)-x)
x0=fzero(func,-200); % find root
disp(x0) %  x0 = -135.5475
disp(func(x0)) % func(x0)= -2.8422e-014

因为你的函数是反对称的,
-x0=135.5475
也是一个解决方案。

是的,这正是我昨天所做的,而且很有效!(对不起,我忘了放解决方案,但看起来是你为我做的:P)非常感谢,老兄!d=3t=100f=@(x)9.81*周期^2*tanh(2*pi*深度/x)-x;z=f0(f,150);零=绝对值(z);看看“tchnvkng”的答案,我也做了同样的事情,它成功了!