newton

379 palavras 2 páginas
function xk = quase_newton(fn,x0,tol) syms alfa real; var = symvar(fn); H0 = eye(length(x0)); g = gradient (fn); %B = x0 + alfa*dk; %dfa = diff(hk); %raizes = double(solve(dfa)); %xk = xk + ak*dk; xk=1; xk_old=0; n=0; ak=1; while abs(xk - xk_old)>tol if n==0 xk=x0; Hk=H0; gk_old=0; Hk_old=0; end deltak = xk - xk_old; xk_old = xk; gk = subs(g,var,xk.'); gamak = gk - gk_old; Hk = Hk_old - (Hk_old*gamak*gamak'*Hk_old)/(gamak'*Hk_old*gamak) + (deltak*deltak')/(deltak'*gamak); dk = -1*Hk*gk; B = xk + alfa*dk;

hk = subs(fn,var,B.'); dfa = diff(hk); raizes = double(solve(dfa));

d2fa = double(subs(diff(dfa),raizes.'));

for i = 1:length(d2fa) if d2kh(i)> 0 && raizes(i) == min(raizes) % ak é o minimo das raízes da primeira derivada que possui derivada segunda positiva ak = raizes(i) ; end end

xk = xk + ak*dk; n=n+1; Hk_old = Hk; gk_old = gk; end

maximizado vem do produto indicado acima: volume = f(x) = (297 − 2x)(210 − 2x)x = 4x3 − 1014x2 + 62370x
Esta fun¸c˜ao objetivo ´e polinomial, uma par´abola c´ubica. ´E relativamente simples tra¸car o seu gr´afico, at´e mesmo sem aux´ılio computacional. Usando o GNUPLOT chegar´ıamos `a figura 2.2.
0
1e+06
2e+06
3e+06
4e+06
0 50 100 150 200
4x3 − 1014x2 + 62370x
Figura 2.2: Volume da caixa aberta em fun¸c˜ao de x
Uma simples inspe¸c˜ao visual permite identificar o m´aximo: x∗ ≈ 45 correspondendo a V ∗ = f∗ ≈ 106. Existe tamb´em um m´ınimo, em x ≈ 130, mas n˜ao tem sentido um valor de x maior do que a metade de uma das dimens
˜oes do papel. A solu¸c˜ao anal´ıtica tamb´em ´e simples, afinal esta

Relacionados

  • Newton
    3479 palavras | 14 páginas
  • Newton
    2408 palavras | 10 páginas
  • Newton
    14704 palavras | 59 páginas
  • Newton
    1920 palavras | 8 páginas
  • Newton
    448 palavras | 2 páginas
  • Newton
    7190 palavras | 29 páginas
  • Newton
    588 palavras | 3 páginas
  • Newton
    557 palavras | 3 páginas
  • Newton
    747 palavras | 3 páginas
  • Newton
    440 palavras | 2 páginas