Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Plain Text by xyz ( 13 years ago )
function [zw, qw] = zlpod(hkoszt, x0, d, przedz, epsilon, maxit)

q = @(z) hkoszt(x0, z, d);
tau = (-1 + sqrt(5)) / 2;

zw = zeros(1, 3);
qw = zeros(1, 3);

j = 1;
while true
    z1 = tau * przedz(1) + (1 - tau) * przedz(3);
    q1 = q(z1);
    
    z2 = przedz(1) + przedz(3) - z1;
    q2 = q(z2);
    
    j = j + 1;
    
    if q1 > q2
        przedz(1) = z1;
        z1 = z2;
        q1 = q2;    
    else
        przedz(3) = z2;
    end
    
    if przedz(3) - przedz(1) < epsilon * abs(z1) || j == maxit
        zw(1) = przedz(1);
        qw(1) = q(przedz(1));
        zw(2) = z1;
        qw(2) = q1;
        zw(3) = przedz(3);
        qw(3) = q(przedz(3));
        break;    
    end
end

end

 

Revise this Paste

Your Name: Code Language: