fzero

Encontra uma raiz de uma função de uma variável.

Categoria: Mathematics > Optimization

Sintaxe

x = fzero(fun, x0)

Busca a partir do escalar x0 um ponto onde fun muda de sinal.

x = fzero(fun, [a b])

Busca dentro de um intervalo cujos valores nos extremos têm sinais opostos.

x = fzero(fun, x0, options)

Igual, com configurações criadas por optimset.

[x, fval, exitflag, output] = fzero(___)

Também retorna o valor da função, um indicador de status e estatísticas da execução.

Descrição

fzero combina bisseção, método da secante e interpolação quadrática inversa. A bisseção garante progresso, e os métodos mais rápidos são usados sempre que ficam dentro do intervalo.

Ele encontra pontos em que a função cruza o zero. Uma raiz em que a função apenas toca o zero sem trocar de sinal, como x^2 em 0, não pode ser delimitada e costuma passar despercebida. Retorna uma raiz por chamada; para achar outras, use outro ponto inicial ou outro intervalo.

Argumentos de entrada

fun
Handle de função que recebe um escalar e retorna um escalar.
x0
Estimativa inicial. O método expande um intervalo ao redor dela até encontrar uma mudança de sinal.
[a b]
Intervalo que contém a raiz. fun(a) e fun(b) devem ter sinais diferentes, senão ocorre um erro.

Argumentos de saída

x
A raiz encontrada.
fval
fun(x), próximo de zero.
exitflag
1 quando uma raiz foi encontrada.
output
Struct com intervaliterations, iterations, funcCount, algorithm e message.

Exemplo

Raiz em um intervalo e a partir de uma estimativa

x = fzero(@cos, [1 2]);
fprintf('%.6f\n', x)
[r, fval, flag] = fzero(@(t) t^2 - 2, 1);
fprintf('%.6f %.1e %d\n', r, abs(fval), flag)
Saída
1.570796
1.414214 4.4e-16 1

Veja também

fminbnd fminsearch roots optimset fplot