View
216
Download
14
Category
Preview:
DESCRIPTION
\ASSA
Citation preview
CÁLCULO NUMÉRICO
APRENDENDO A USAR O MATLAB:
RESOLUÇÃO DE PROBLEMAS
Profa. Dra. Elenice Weber Stiegelmeier
Eng. Renan Franco Correa
Cornélio Procópio, 2013
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 2
1. Introdução
MATLAB, que é uma abreviação de MATtrix LABoratory, é um software amplamente utilizado em
vários campos da ciência e da engenharia. As suas principais funcionalidades são em cálculos numéricos e
visualização de dados. É possível criar algoritmos e ferramentas personalizadas, usando como base uma
linguagem de programação poderosa.
O MATLAB é muito conhecido por sua alta capacidade fazer cálculos envolvendo matrizes e
vetores. Os usos mais comuns do para MATLAB são as seguintes tarefas:
Computação numérica e desenvolvimento de algoritmo.
Computação literal (usando as funções contidas em ‘Symbolic Math’).
Modelagem, simulação e criação de protótipos.
Análise de dados e processamento de sinais.
Criação de gráficos relacionados a engenharia.
Passo a passo:
1- Abra o MATLAB
2- No MATLAB pode se observar 3 janelas, que são:
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 3
Podemos também utilizar os M-files, na barra de Menus acessando a guia File>New>M-file, caso se
deseje criar procedimentos de forma que estes fiquei salvos em arquivos. Os arquivos salvos são gerados na
extensão ‘nomedoarquivo’.m que são compilados utilizando-se a CommandWindow.
1.1. Escrevendo comandos e operadores matemáticos
Todo comando deve ser seguido de um retorno (tecla enter) para que o comando seja executado. O
MATLAB difere maiúsculas de minúsculas, os comandos são em letras minúsculas.
Para executar um M-file, tal como (teste_1.m) simplesmente deve-se digitar o nome do arquivo sem
a extensão, neste caso, devemos digitar teste_1 apenas.
Para conhecer algumas das funcionalidades do MATLAB, escreva o comando demo e tecle enter.
Com isto, será inicializado o MATLAB EXPO. Que é um ambiente de demonstração gráfica que mostra
alguns tipos de operações que podem ser realizadas no MATLAB.
Para interromper um comando no MATLAB, deve se manter a tecla crtl pressionada e teclar c, que
irá abortar a tarefa imediatamente.
Usa-se ponto e vírgula quando se deseja que um comando seja executado, porém que o valor
calculado por ele não seja mostrado na tela de comando.
Usa-se % para fazer comentários durante a programação, sendo que tal linha não será usada para fins
de cálculo, mas apenas para o entendimento da rotina, pode ser explicado o método que é utilizado ou a
pretensão. Colocar comentários sobre diferentes etapas do programa é muito útil para o entendimento de uma
rotina por diferentes usuários.
O comando clc, seguido de enter, irá limpar a ‘command window’. É bom usar esse comando após
usar uma série de comandos, e mesmo após rodar uma rotina, para não se confundir com os valores de saída
das rotinas e dos comandos.
Não se desespere, nem desista quando não souber algo que encontrar em uma rotina do MATLAB, o
comando help irá ajudá-lo (parece óbvio, mas tem muita gente que insiste em não pedir ajuda ao Help). Se
quiser um help especifico sobre um determinado tópico, pode colocar, por exemplo:
>> help sqrt
Declarações e variáveis, as declarações, geralmente tem a seguinte forma:
Variável = expressão
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 4
O sinal ‘=’ indica que a variável assume o valor da expressão. É possível escrever, por exemplo:
x = x+1;
Nota-se claramente que não é uma igualdade matemática, na verdade o valor de x é incrementado em
uma unidade toda vez que este comando for executado.
Exemplo de programação:
>> x = 2; %o valor de x agora é 2
>> x = x + 1; %o valor de x agora é 2+1, e na tela de comando aparecerá 3.
x =
3
Os principais operadores matemáticos usados no MATLAB estão na tabela abaixo:
Operações matemáticas Símbolo Exemplo
Soma + 3+7
Subtração - 9-3
Multiplicação * 7*4
Divisão à direta ∕ 6/2 (=3)
Divisão à esquerda \ 2\3 (=1.5)
Potenciação ^ 3^2 (=3*3=9)
Os resultados em MATLAB podem ser mostrados em formatos diferentes, como o científico, e com
números de casas decimais definidos, alguns dos formatos disponíveis, com a respectiva descrição estão
listados abaixo:
Comando Descrição Exemplo
Format short após o ponto com quatro casas
decimais 351/7 ans=50.1429
Format long Após o ponto com catorze casas
decimais
351/7
ans=50.14285714285715
Format short e Notação científica com quatro casas
decimais 351/7 ans=5.0143e+001
Format long e Notação científica com quinze
casas decimais
351/7
ans=5.014285714285715e+001
Os operadores AND, OR, NOT também podem ser usados.
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 5
2. Matrizes e vetores
Existem diversas formas de se montar uma matriz. A mais comum é pelo uso de colchetes, por
exemplo, A = [ elementos ]. Os elementos de cada linha são separados por espaço ou vírgula e os elementos
das colunas são separados por ponto e vírgula.
Exemplos:
Vetor: disposto em linhas e colunas.
>> A = [1 2 5 8] % matriz linha
>> A = [1; 2; 5; 8] %matriz coluna
Matriz: Elementos dispostos em linhas e colunas.
>> A = [1 -2 0; 3 -4 -1]
>> x = 2
>> B = [-5*x (2*x)+7; 3*x^2 1-x]
O exemplo a seguir mostra a concatenação (encadear) de duas palavras com um espaço no meio.,
todos definidos entre aspas simples (tipo caracter).
Na tela de comandos:
>> a = 'duas';
>> b = ' ';
>> c = 'palavras';
>> [a b c]
ans =
duas palavras
Outra maneira de definir matrizes consiste em criar vetor-linhas com elementos em progressão
aritmética, através da simples sintaxe:
valor_inicial : incremento : valor_final
onde os valores fornecidos não precisam ser necessariamente inteiros.
Basicamente, o primeiro elemento do vetor criado corresponde ao valor inicial e os demais
elementos são acrescidos do passo (ou incremento) de tal maneira que não ultrapasse o valor final. Caso o
incremento seja omitido, ele será entendido como igual a 1.
A declaração de matrizes pode ser feita da seguinte maneira:
>> 1:5:20 % cria o vetor coluna v = [1 6 11 16]
ans =
1 6 11 16
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 6
>> 2.71:5.71
ans =
2.7100 3.7100 4.7100 5.7100
>> A = [1:2:10] % cria o vetor coluna A = [1 3 5 7 9]
A =
1 3 5 7 9
A Tabela a seguir traz algumas funções importantes no cálculo de matrizes.
Função Descrição Exemplo
length (A) Retorna o número de elementos
do vetor A
>> A=[5 9 2 4]
>> length (A)
ans =
4
size (A) Retorna um vetor linha [m, n]
onde m e n corresponde ao
tamanho da matriz A
>> A = [2 3 0 8 11; 6 17 5 7 1]
>>size(A)
ans =
2 5
diag(v)
Cria uma matriz diagonal (nxn)
onde os elementos da diagonal
pertencem ao vetor v
>>v=[1 3 5]
>>diag(v)
diag(A)
Quando A é uma matriz
quadrada, criamos um vetor
com os elementos da diagonal.
>>A = [1 8 3; 4 6 4; 9 -2 -3]
>> diag(A)
Exemplo:
>> v = [1 3 5]
v =
1 3 5
>> diag(v)
ans =
1 0 0
0 3 0
0 0 5
2.1 Operações elementares com vetores e matrizes
Soma ou subtração: usa-se os operadores ‘+’ indicando soma e ‘-‘ indicando a subtração.
>> A = [ -5 7 6; 1 -2 4; 6 0 8]
>> B = [ 3 1 -2; 4 0 -3; 2 -2 1]
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 7
>> A+B % Adição
>>B-A % Subtração
Multiplicação matrizes: usa-se o operador ‘*’.
>> A*B % Multiplicação
>> A’ % usa-se o apóstrofo para indicar a transposição de matrizes.
2.2 Matrizes elementares
ones: cria uma matriz onde todos os elementos são iguais a 1, dados os números de linhas de
colunas, respectivamente.
>> ones(2,3)
ans =
1 1 1
1 1 1
zeros: cria uma matriz onde todos os elementos são nulos, dados os números de linhas de colunas,
respectivamente.
>> zeros(2,2)
ans =
0 0
0 0
rand: cria uma matriz com elementos pseudo-aleatórios, com distribuição aleatória entre 0 e 1,
dados os números de linhas de colunas, respectivamente.
>> rand(3,3)
ans =
0.2785 0.9649 0.9572
0.5469 0.1576 0.4854
0.9575 0.9706 0.8003
eye: cria uma matriz identidade, dada sua ordem.
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 8
linspace: cria um vetor linearmente espaçado. Precisamos fornecer como dados de entrada o valor
inicial x1, o valor final x2 e o número de elementos da matriz N. Comando: linspace(x1, x2, N) gera N
pontos entre x1 e x2 espaçados linearmente.
>> linspace(1,15,5) % cria um vetor com N = 5 pontos entre x1 = 1 e x2 = 15.
ans =
1.0000 4.5000 8.0000 11.5000 15.0000
logspace: cria um vetor com espaçamento logarítmico.
Comando: logspace(x1, x2, N) gera N pontos entre x1 e x2 com espaçamento logarítmico.
>> logspace(1,5,5) % cria um vetor com N = 5 elementos entre x1 = 1 e x2 = 5.
ans =
10 100 1000 10000 100000
2.3 Álgebra linear
det: retorna o determinante da matriz de entrada
>> A = [ 1 2; 4 2];
>> B = [3 0 1; -1 2 1; 0 -2 -1]
>>det(A) % determinante da matriz A
>> det(B) % determinante da matriz B
inv: retorna a inversa da matriz de entrada
>> C = [0 1 ; 1 2]
>> inv(C) % Matriz inversa de C
>> D = [1 2 3; 4 6 8; -1 2 3]
>> inv(D)
poly: retorna a matriz com os coeficientes do polinômio característico da matriz de entrada.
>> A = [1 2; 3 4]
>> poly (A) % define os coeficientes do polinômio característico da matriz A
ans =
1.0000 -5.0000 -2.0000
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 9
Isso significa que o polinômio característico é .
eig: retorna um vetor de autovalores da matriz de entrada. Para duas variáveis de saída, retorna a
matriz de autovetores e matriz diagonal de autovalores.
>> eig (A) % define os autovalores da matriz A
ans =
-0.3723
5.3723
Os autovetores de uma matriz são obtidos pela função [V, D] = eig(A).
Essa instrução produz duas matrizes V e D. A matriz D é uma matriz diagonal onde os elementos da
diagonal principal são autovalores. A matriz V é a matriz formada pelos autovetores, cada coluna é um
autovetor de modo que A*V = V*D.
>> A = [-3 4;-1 2];
>> poly(A)
ans =
1 1 -2
Isso significa que o polinômio característico é .
>> eig (A)
ans =
-2
1
>> [V,D] = eig(A)
ans =
V =
-0.9701 -0.7071
-0.2425 -0.7071
D =
-2 0
0 1
>> A*V-V*D
ans =
0 0
0 0
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 10
3. Funções Matemáticas
O MatLab possui diversas funções matemáticas elementares, as quais podem ser listadas pelo
comando help elfun. Abaixo estão listadas as mais comumente utilizadas.
3.1 Funções trigonométricas
Trabalham com valores de ângulos expressos em radianos.
Exemplo:
>> cos(pi)
ans =
-1
>> acos(ans)
ans =
3.1416
>> sin(pi/2)
ans =
1
3.2 Funções exponenciais
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 11
Exemplo:
>> log(exp(10))
ans =
10
>> sqrt(log10(ans))
ans =
1
3.3 Funções polinomiais
No MatLab, um vetor pode ser interpretado como um polinômio quando cada um de seus elementos
é associado a um coeficientes do polinômio, começando pelos coeficientes dos termos de maior grau. Assim,
por exemplo, [2 -7 1] será interpretado com .
Portanto, listam-se abaixo algumas das funções que trabalham com polinômios.
roots: retorna um vetor com as raízes de um polinômio de entrada.
Exemplo:
>> p = [1 5 6];
>> roots(p)
ans =
-3.0000
-2.0000
polyval: retorna o valor numérico do polinômio ou a imagem de um polinômio, dados
respectivamente, o polinômio e o valor de sua variável independente.
Exemplo:
>> polyval(p,1) % valor numérico do polinômio p(1).
ans =
12
poly: cria um polinômio a partir de um vetor de entrada contendo suas raízes.
Exemplo:
>> poly([-3,-2]) % dada as raízes, obtemos como saída o polinômio
ans =
1 5 6
Adição de polinômios:
Exemplo: Observe, é possível efetuar a soma desde que os polinômios sejam iguais.
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 12
>> p = [1 0 -3 -1 2];
>> f = [0 4 -2 5 -16];
>> p + f
ans =
1 4 -5 4 -14
Multiplicação por escalar: e k = 2
>> k = 2;
>> k*p
ans =
2 0 -6 -2 4
conv: cria uma matriz resultante da multiplicação de polinômios.
Seja .
>> g = [1 5 6];
>> h = [2 4];
>> conv(g, h)
ans =
2 14 32 24
Isso significa que .
deconv: cria duas matrizes a partir da divisão de polinômio, q = quociente e r = resto.
Seja .
>> g = [1 5 6];
>> h = [1 2];
>> [q, r] = deconv(g, h)
q =
1 3
r = 0 0 0 0 0 0
Isso significa que .
Observe: como o resto deu nulo, r = 0, significa que -2 é uma das raízes do polinômio g(x). Podemos
verificar usando o seguinte comando:
>> polyval(g,-2)
ans =
0
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 13
4. Funções e scripts
Funções e scripts são sequências de comandos do Matlab armazenadas em arquivos do tipo
texto com extensão ‘.m’ (m-files), que tem por finalidade automatizar processos repetitivos e
implementar cálculos e comandos lógicos. A diferença básica entre ambos é que as funções aceitam
parâmetros de entrada e retornam parâmetros de saída, enquanto os scripts unicamente executam a
sequencia de comandos.
Para que um m-file seja interpretado como função, deve ser escrita a seguinte expressão no
cabeçalho do arquivo:
onde saída1, ..., saidaN são os parâmetros de saída, entrada 1, ... , entradaN são os parâmetros de
entrada e nome é o próprio nome da função.
Depois de escrito o código, o arquivo deverá ser salvo com o mesmo nome da função e com
a extensão ‘.m’. Uma condição necessária para a execução de um arquivo M é que eles estejam no
diretório corrente do MatLab. Para a execução de um script, basta ir à barra de ferramentas da
janela de edição em opção debug>run ou file>Run Script (dependendo da versão), a mudança de
diretório corrente é automática, sendo desnecessária a intervenção do usuário.
4.1 Estruturas de repetição e condicionais
Uma estrutura de repetição faz com que um comando seja executado repetidamente enquanto se
satisfaça uma dada condição. O MatLab possui duas estruturas de repetica: for e while.
A condição da estrutura for é que a variável seja menos ou igual a fim. Enquanto satisfeita essa
condição, ao término de cada loop de comandos, variável é incrementada de incr. O incremento é
considerado unitário caso seja omitido.
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 14
Abaixo segue um exemplo de cálculo de somatório, usando-se o comando for e salvo como uma
script:
____________________________________________________________
% Exemplo de laço FOR clc close all format short n = input('Digite o valor máximo da soma (n): '); % Exibe o texto e lê o valor
para a variável de entrada soma = 0; for i = 1:1:n x(i)= 0.11; soma = soma + x(i); end fprintf('\nO valor do somatório é:\n',soma); disp(soma); % exibe o valor da variável de saída
____________________________________________________________________
Depois de escrito o código o arquivo deverá ser salvo como nomearquivo.m (por exemplo sum.m).
Para compilar o arquivo basta digitar na tela de comandos do MatLab o nome do arquivo, desde que este
esteja no diretório corrente.
Exemplo:
>> sum
Digite o valor máximo da soma (n): 30
O valor do somatório é:
3.299999999999999
Abaixo segue exemplo de como resolver o problema de somatório usando uma function.
____________________________________________________________________
%Exemplo: function [saida]= nomedoarquivo(entrada) function soma = somatorio(n) n = 30; % Entrada soma = 0; for i = 1:1:n x(i)= 0.11; soma = soma + x(i); end
_____________________________________________________________________
Para executar a function, pode-se compilar o arquivo usando a barra de ferramentas da janela de
edição em opção debug>run ou digitar na tela de comandos a seguinte estrutura:
.
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 15
Exemplo:
>> [soma]=somatorio(n)
soma =
3.299999999999999
Uma estrutura condicional permite a seleção de um conjunto de comandos a serem executados
quando uma dada condição for ou não satisfeita, podendo assim modificar o fluxo natural de comandos. As
três estruturas condicionais básicas do Matlab estão listadas a seguir.
As estruturas 1 e 2 são casos particulares da estrutura 3. As condições são formadas pelos operadores
lógicos e relacionais.
Abaixo são mostrados exemplos de script com uma estrutura if.
Exemplo 1:
__________________________________________________________________________
A = input('Entre com o valor de A = '); %Solicita ao usuário o valor
B = input('Entre com o valor de B = ');
if A==B
display('A e B iguais.') % Exibe o texto na janela de comandos.
else
display('A e B diferentes.')
end
_________________________________________________________
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 16
Exemplo 2:
_____________________________________________________________________________
a = input('Entre com o valor de a = '); %Solicita ao usuário o valor
b = input('Entre com o valor de b = ');
if b > a
b = 0;
else
b = b + a;
end
fprintf('\nO valor do b é:\n',b)
disp(b)
_____________________________________________________________________________
5. Gráficos
O Matlab é um software muito eficiente para a criação e manipulação de gráficos em duas ou três
dimensões. Basicamente, os gráficos são construidos a partir da criação de vetores. A seguir são listados
alguns dos comandos mais usados para a criação de gráficos.
plot: desenha gráficos em 2-D, dados o vetor das abscissas e o vetor de ordenadas.
>> x = [0:0.1:10];
>> y = x.^2;
>> plot(x,y)
A partir do comando plot, o gráfico é gerado em um nova janela, “Graphics Window”, onde
encontram-se diversos recursos para edição da figura.
Observe que, quanto menor o incremento, mais pares ordenados são criados, e consequentemente,
melhor será a precisão do gráfico.
A função plot também pode ser usada no desenho de mais de um gráfico em uma mesma figura. Para
isso, deve-se usar a seguinte notação:
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 17
Figura 1 - Gráfico gerado para a função .
Exemplo:
>> x = [-10:0.1:10];
>> y = x.^2;
>> plot(x, y, x, 2*y);
Os comandos acima geram a Figura 2.
Figura 2 – Gráfico gerado para as funções
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 18
Para gerar gráficos em janelas diferentes usa-se o comando figure (n) antes do comando plot, onde n
é o número da janela de figuras.
A formatação de cor, marcador e tipo de linha dos gráficos também pode ser configurada pelo
usuário. Para isso, usa-se a seguinte notação:
onde no lugar de ‘conf’ usa-se os comandos especificados a seguir:
plot3: plota pontos e linhas em 3D, a partir de três vetores de coordenadas de mesmo tamanho.
Exemplo: Vamos criar um m.file exemplos de diversas figuras com diferentes configurações.
_________________________________________________________________________________
%%%%% GRAFICOS %%%%%%%% X = [-10:0.1:10]; Y = X.^2; figure (1) plot(X,Y); grid on; title 'Plot 2D' %%%%%%%%%%%%%%%%%%%%% figure (2) plot(X,Y,'r',X,2*Y,'g') grid on title 'Gráfico y1 = x^2 e y2 = 2*x^2 ' legend 'y1' 'y2' %%%%%%%%%%%%%%%%%%%%%%% figure (3) t = 0:0.1:10*pi; f1 = t.*sin(t);
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 19
f2 = t.*cos(t); plot3(f1,f2,t) grid on; title 'Plot 3D' xlabel 'x' ylabel 'y' zlabel 'z'
_____________________________________________________________________________________
Exemplo de gráfico em 3D gerado em MatLab:
6. Resolução numérica de equações
A seguir, apresentamos alguns métodos numéricos utilizados na resolução de equações da forma
, onde é uma função de uma variável real.
6.1 Estudo das equações algébricas: valor numérico de um polinômio.
Dado um polinômio , um problema que se coloca é o de calcular o valor numérico de
, ou seja, . Porém, se o grau n do polinômio for elevado (digamos, ), o
cálculo de , além de se tornar muito laborioso, é também ineficiente do ponto de vista computacional.
6.1.1 Métodos de Horner e Briot-Ruffini
Algoritmo: Método de Horner
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 20
Abaixo segue um exemplo utilizando o método de Horner para calcular o valor numérico de um
polinômio, usando-se o comando for e salvo como uma function.
_____________________________________________________________
% HORNER - valor numérico de um polinômio function p = horner(a,z0) %Entradas: coef do polinomio a=[a1...an] no ponto x0 clear all; clc; %limpar variáveis e tela de comando a = [1 2 1]; % Ex: P(x) = x^2 + 2x+1 x0 = 1; % Valor numérico em x = 1. n = length(a); % tamanho da matriz a result = a(1); for i = 2:n result = result*x0 + a(i); % iteração do método de Horner end fprintf('\nO valor do polinomio aplicado em x = %g é:\n',x0)% Exibe a solução disp(result); end
________________________________________________
Algoritmo: Método de Briot-Ruffini
Abaixo segue um exemplo utilizando o método de Briot-Ruffini para calcular o valor numérico de
um polinômio, usando-se o comando for e salvo como uma function.
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 21
_________________________________________________________________
% Método de Briot Ruffini % Entradas: n - grau do polinomio % [a3 a2 a1 a0] - matriz linha dos coeficientes do P(x) % x0 - valor numérico a ser aplicado function briotruffini(a, x0) clc; clear all; a = [1 3 0 1 -1 3]; %Ex: P(x) = x^5+3*x^4+x^2-x+3 x0 = 2; n = length(a); b(1) = a(1); for k = 2:n b(k) = x0*b(k-1) + a(k); end m = length(b); r = b(m); Q = b(1:m-1); fprintf('\nO valor numérico do polinômio em x = %g é:\n',x0) disp(r); fprintf('\nQ(x) = %g é:\n') disp(Q); fprintf('\nResto = %g é:\n') disp(r);
_____________________________________________________
6.2 Resolução numérica de equações transcendentes
As equações transcendentes devem conter pelo menos uma dessas funções ou a combinação linear
destas:
Exemplos:
Temos por objetivo encontrar as raízes da equação , ou seja, determinar o ponto onde
intercepta o eixo das abscissas.
Para isso, devemos seguir duas etapas:
i) Isolamento: deve-se isolar a raiz, ou seja, achar um intervalo menos possível que contenha
uma e somente uma raiz.
ii) Refinamento: refinar significa achar a raiz com a precisão requerida. Para isso, são utilizados
os métodos iterativos, os quais, geram uma sequência de aproximações que convergem para a solução
desejada.
Teorema de Bolzano
Seja uma função contínua em . Se , então, existe pelo menos um ponto
entre a e b tal que .
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 22
6.2.1 Método da Bisseção
Seja uma função contínua no intervalo ta que e seja dado. A ideia
do método é reduzir a amplitude do intervalo, até atingir a precisão requerida , através de
divisões sucessivas no intervalo.
Algoritmo:
Abaixo segue um exemplo da implementação em Matlab do método da Bisseção para calcular
aproximações da raiz da função .
_____________________________________________________________________
% ------------------Método da Bisseção------------------- clc disp('---------------------------------------------------') disp('A funçao deve ser definida antes de começar como f ') disp(' f=inline(FUNÇÃO) ') disp('se nao definida aperte Crtl+C para sair ') disp('---------------------------------------------------') x0=input('Digite o primeiro valor do intervalo (X0): '); x1=input('Digite o segundo valor do intervalo (X1): '); erro=input('Insira o erro: '); f=inline('exp(x)+x-2'); x=0; if f(x1)*f(x0) > 0 disp('Não tem raiz nesse intervalo')
Aprendendo a usar o MatLab
Elenice Weber Stiegelmeier / Renan Franco Correa 23
else while abs(x1-x0) > erro, x=(x0+x1)/2; if f(x)*f(x0) > 0, x0=x; else x1=x; end; end; disp('A raiz aproximada é ') disp(x); end
___________________________________________________________
Recommended