aprendendo a usar o matlab - v3

23
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

Upload: daniela-alexandrino

Post on 20-Oct-2015

217 views

Category:

Documents


14 download

DESCRIPTION

\ASSA

TRANSCRIPT

Page 1: Aprendendo a Usar o Matlab - V3

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

Page 2: Aprendendo a Usar o Matlab - V3

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:

Page 3: Aprendendo a Usar o Matlab - V3

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

Page 4: Aprendendo a Usar o Matlab - V3

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.

Page 5: Aprendendo a Usar o Matlab - V3

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

Page 6: Aprendendo a Usar o Matlab - V3

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]

Page 7: Aprendendo a Usar o Matlab - V3

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

Page 8: Aprendendo a Usar o Matlab - V3

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

Page 9: Aprendendo a Usar o Matlab - V3

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

Page 10: Aprendendo a Usar o Matlab - V3

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

Page 11: Aprendendo a Usar o Matlab - V3

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.

Page 12: Aprendendo a Usar o Matlab - V3

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

Page 13: Aprendendo a Usar o Matlab - V3

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.

Page 14: Aprendendo a Usar o Matlab - V3

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:

.

Page 15: Aprendendo a Usar o Matlab - V3

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

_________________________________________________________

Page 16: Aprendendo a Usar o Matlab - V3

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:

Page 17: Aprendendo a Usar o Matlab - V3

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

Page 18: Aprendendo a Usar o Matlab - V3

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);

Page 19: Aprendendo a Usar o Matlab - V3

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

Page 20: Aprendendo a Usar o Matlab - V3

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.

Page 21: Aprendendo a Usar o Matlab - V3

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 .

Page 22: Aprendendo a Usar o Matlab - V3

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')

Page 23: Aprendendo a Usar o Matlab - V3

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

___________________________________________________________