matlab secant method

本文介绍了一个使用Matlab编写的割线法脚本,该脚本用于求解非线性方程,具体应用为寻找指定数值的平方根。用户需输入目标数值及两个初始猜测值,通过迭代计算直至达到所需精度。
% 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://www.cnblogs.com/yxwkf/p/4553880.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值