您的位置:首页 > 编程语言 > MATLAB

matlab secant method

2015-06-05 09:57 543 查看
% Matlab script to illustrate the secant method

% to solve a nonlinear equation

% this particular script finds the square root of a number M

% (input by the user)

% note that the function we are trying to zero is f(x) = x^2 - M.

% this function is hard-coded in the script.

g=9.8065;

k=0.00341;

% f(x)=log(cosh(t*srt(g*k)))/k;

format long

% get user input

M = input('Please enter the number whose square root you want: ')

t0 = input('Please enter the first of two starting guesses: ')

t1 = input('Please enter the second of two starting guesses: ')

% iteration counter

k = 1

% compute first secant iterate to enter loop

s = (((log(cosh(t1*sqrt(g*k)))/k)-M)-((log(cosh(t0*sqrt(g*k)))/k)-M) )/(t1-t0);

% s = ( (x1^2-M) - (x0^2-M) ) / (x1 - x0);

t = t1 - (((log(cosh(t1*sqrt(g*k)))/k)-M))/s

% x = x1 - (x1^2-M)/s

disp('Hit return to continue')

pause

while abs(t-t1) > eps*abs(t),

% reset guesses

t0 = t1;

t1 = t;

% increment iteration counter

k = k + 1

% compute and display secant iterate

s = (((log(cosh(t1*sqrt(g*k)))/k)-M)-((log(cosh(t0*sqrt(g*k)))/k)-M) )/(t1-t0);

% s = ( (x1^2-M) - (x0^2-M) ) / (x1 - x0);

% x = x1 - (x1^2-M)/s

t = t1 - (((log(cosh(t1*sqrt(g*k)))/k)-M))/s

disp('Hit return to continue')

pause

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: