matlab里的tanh()函数括号内可以采用别的函数吗?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/13 23:53:04
matlab里的tanh()函数括号内可以采用别的函数吗?
clear
h=1;
l=eval(solve('x*tanh(x*h)=4','x'));
l
以上是我的函数 运行后显示
警告:Explicit solution could not be found.
> In solve at 179
但是如果我直接在solve句里把h换成1,就可以计算了,好奇怪不知道为什么,就像这样
l=eval(solve('x*tanh(x*1)=4','x'));
那么请问问题出在哪里呢?应该怎么做才能实现我预定的功能?
clear
h=1;
l=eval(solve('x*tanh(x*h)=4','x'));
l
以上是我的函数 运行后显示
警告:Explicit solution could not be found.
> In solve at 179
但是如果我直接在solve句里把h换成1,就可以计算了,好奇怪不知道为什么,就像这样
l=eval(solve('x*tanh(x*1)=4','x'));
那么请问问题出在哪里呢?应该怎么做才能实现我预定的功能?
利用subs把h替换成真实值:
l = eval(solve(subs('x*tanh(x*h)=4','h',h),'x'))
再问: 太厉害了。。想了一晚上,谢谢你,不过这个是问题的简化版
如果把题中的h换成h(i),就是矩阵h的第i个元素,不知道可行吗?
再答: 这当然可以,把上述的h改成h(i)即可
再问: 谢谢你,可惜我分太少了。
再答: 不过solve是求解解析解,x*tan(xh)是超越方程,没有解析解。你可以使用数值解法,如下所示:
>> l = @(h)fzero(@(x)x*tanh(x*h)-4, 0);
>> l(1) % 求解h=1的时候 l 的值
l = eval(solve(subs('x*tanh(x*h)=4','h',h),'x'))
再问: 太厉害了。。想了一晚上,谢谢你,不过这个是问题的简化版
如果把题中的h换成h(i),就是矩阵h的第i个元素,不知道可行吗?
再答: 这当然可以,把上述的h改成h(i)即可
再问: 谢谢你,可惜我分太少了。
再答: 不过solve是求解解析解,x*tan(xh)是超越方程,没有解析解。你可以使用数值解法,如下所示:
>> l = @(h)fzero(@(x)x*tanh(x*h)-4, 0);
>> l(1) % 求解h=1的时候 l 的值