怎么在matlab中求解方程1+cosx*chx=0(需要方程前十个x值较小的解,ch函数在matlab中是cosh)
答案:1 悬赏:50 手机版
解决时间 2021-03-26 04:36
- 提问者网友:沉默菋噵
- 2021-03-26 00:32
怎么在matlab中求解方程1+cosx*chx=0(需要方程前十个x值较小的解,ch函数在matlab中是cosh)
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-03-26 00:59
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点的正数根近似值,它们的相反数也是根
注意第一个根的误差最小,后面的根的误差会越来越大追问我输入之后为什么没有结果显示呢?追答加一句disp(z)
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点的正数根近似值,它们的相反数也是根
注意第一个根的误差最小,后面的根的误差会越来越大追问我输入之后为什么没有结果显示呢?追答加一句disp(z)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯