怎么在matlab中求解方程1+cosx*chx=0(需要方程前十个x值较小的解,ch函数在matlab中是cosh)

el6b 1年前 已收到1个回答 举报

yh_24 幼苗

共回答了14个问题采纳率:92.9% 举报

fun=@(x) 1+cos(x).*cosh(x);
xx=(0:9)*pi+pi/2;
z=zeros(size(xx));
for i=1:length(xx)
z(i)=fzero(fun,xx(i));
end
因为cos和cosh都是偶函数,所以它的根正负对称的
这个函数是个超越函数,所以解析解不能用初等函数表示
我们可以重数值解法
因为cos(x)的根是pi/2+n*pi,可以预见函数的根在 pi/2+n*pi附近
以pi/2+n*pi为初始值,寻找附近的根就可以了
得到的z就是10个最靠近0点的正数根近似值,它们的相反数也是根
注意第一个根的误差最小,后面的根的误差会越来越大

1年前 追问

1

el6b 举报

我输入之后为什么没有结果显示呢?

举报 yh_24

加一句disp(z)
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.156 s. - webmaster@yulucn.com