Foto de Maria F.
Maria há 1 ano
Enviada pelo
Site

Alguém me da um help aqui

1 Implemente o método de Newton utilizando o Octave a partir
do material disponibilizado. O código implementado deve atender
os seguintes itens:
(a) Uma funçãoo cujo zero será determinado pelo código implmentado.(Obs:
Cada um deverá escolher sua própria função.)
(b) Dois critérios de parada.
(c) O zero da funçãoo obtido pelo método.

 

O codigo: 

clc
%% Neste bloco você deve definir a função cujo zero será calculado.
function y = f(x);
y = x^2-3;
return
end

%% O método de Newton envolve o cálculo de uma derivada. Este bloco faz o cálculo desta derivada.
%% O uso desta expressão para a derivada será discutido mais adiante no curso.
function dy = df(x)
dy = (f(x+0.001) - f(x-0.001))/(2*0.001);
return
end

%% A partir de f e df, você deve implementar o processo iterativo.

 

Cálculo
1 resposta
Professor Diogo M.
Respondeu há 1 ano
Contatar Diogo

clc

%% Função cujo zero será determinado pelo código implementado.
function y = f(x)
    y = x^2 - 3;
end

%% Derivada da função f(x)
function dy = df(x)
    dy = 2*x; % Derivada da função f(x) = 2x
end

%% Método de Newton
function zero = metodoNewton(f, df, x0, tol1, tol2, max_iter)
    iter = 0;
    x = x0;
    
    while iter < max_iter
        iter = iter + 1;
        x_prev = x;
        
        % Verifica o primeiro critério de parada: |f(x)| < tol1
        if abs(f(x)) < tol1
            zero = x;
            fprintf('Zero da função encontrado com tolerância %f após %d iterações.\n', tol1, iter);
            return;
        end
        
        % Verifica o segundo critério de parada: |x - x_prev| < tol2
        if abs(x - x_prev) < tol2
            zero = x;
            fprintf('Zero da função encontrado com variação %f após %d iterações.\n', tol2, iter);
            return;
        end
        
        % Calcula o próximo ponto usando o método de Newton
        x = x - f(x) / df(x);
    end
    
    fprintf('Número máximo de iterações alcançado.\n');
end

% Parâmetros de entrada
x0 = 1; % Aproximação inicial
tol1 = 1e-6; % Tolerância para o valor de f(x)
tol2 = 1e-6; % Tolerância para a variação entre iterações
max_iter = 100; % Número máximo de iterações

% Chamada do método de Newton
zero = metodoNewton(@f, @df, x0, tol1, tol2, max_iter);
fprintf('Zero da função: %f\n', zero);




Neste exemplo, a função f(x) escolhida é f(x)=x^2?3. O método de Newton é implementado na função metodoNewton, que toma como entrada a função f(x), sua derivada df(x), uma aproximação inicial x0, duas tolerâncias (tol1 e tol2) e o número máximo de iterações max_iter.

Espero que este código atenda aos seus critérios e ajude você a compreender e implementar o método de Newton em Octave.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta

Envie sua pergunta

Aprenda do seu jeito, no seu ritmo

Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App
Escaneie o QR Code para baixar