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)efun(b)devem ter sinais diferentes, senão ocorre um erro.
Argumentos de saída
x- A raiz encontrada.
fvalfun(x), próximo de zero.exitflag1quando uma raiz foi encontrada.output- Struct com
intervaliterations,iterations,funcCount,algorithmemessage.
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)
1.570796
1.414214 4.4e-16 1