% 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
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117900.html原文链接:https://javaforall.cn