双割线求值

来源:互联网 发布:男生衣服品牌知乎 编辑:程序博客网 时间:2024/06/05 03:20
function [ x_star,k] = GeXian( fun,x_0,x_1,ep )%UNTITLED5 Summary of this function goes here%   Detailed explanation goes here%GeXian求在区间【x_0,x_1】之间的零点%fun 求值函数%x_0起点%x_1终点k=1x_k=x_0x_k1=x_1fx_k=feval(fun,x_k)fx_k1=feval(fun,x_k1)x_k2=x_k1-(x_k1-x_k)/(fx_k1-fx_k)*fx_k1fx_k2=feval(fun,x_k2)    if fx_k*fx_k1>0        warning('区间【x_0,x_1】没有零值\n');        return;    end    while abs(x_k1-x_k)>ep        k=k+1                fx_k=feval(fun,x_k)        fx_k1=feval(fun,x_k1)        x_k2=x_k1-(x_k1-x_k)/(fx_k1-fx_k)*fx_k1        x_k=x_k1;        x_k1=x_k2                                   endend
fun=inline('2*x.^3-5*x-1')
[x,k]=GeXian(fun,1,2,10.^-5)


0 0
原创粉丝点击