matlab解方程我有一個函數,cos(x)*ch(x)+1=0,求一個matlab的簡短程序解出X的值.書上的答案給出
題目:
matlab解方程
我有一個函數,cos(x)*ch(x)+1=0,求一個matlab的簡短程序解出X的值.書上的答案給出來的解出來前三個是1.875,4.694,7.855.
詳細的程序哈,放進matlab裡面可以直接運行的那種
解答:
clear;clc;
f=inline('cos(t).*cosh(t)+1');
t=0:0.1:10;
y_char=vectorize(f);
Y=feval(y_char,t);
plot(t,Y)
axis([0 10 -20 200]);
hold on;
plot(t,zeros(size(t)),'k')
xlabel('x'),ylabel('y'),legend('y=cos(x)*ch(x)','y=0')
[xx,yy]=ginput(3); %選擇點的在大概分別在第一個零點附近,第二個零點附近和第三個零點附近
for k=1:length(xx)
x(k)=fzero(f,xx(k));
end
x
%結果
再問: 我把你給出來的代碼貼進去運行後只給出那個函數圖形一類的東西,如何可以得到你出來的x的這三個值?
再答: ginput功能要在函數上取點,在圖像上取三個點,選擇的點分別在第一個、第二個、第三個零點附近
再問: 但這樣子的話事實上並不是解方程,而是在知道解的前提下解方程,不太合適吧?
再答: 畫圖像可以目測解,但這個時候得到的解誤差很大,然後用fzero得到精確的解,這種方法還是比較常用的
添加新評論