Sie sind auf Seite 1von 23
CÁLCULO NUMÉRICO APRENDENDO A USAR O MATLAB: RESOLUÇÃO DE PROBLEMAS Profa. Dra. Elenice Weber Stiegelmeier

CÁLCULO NUMÉRICO

APRENDENDO A USAR O MATLAB:

RESOLUÇÃO DE PROBLEMAS

APRENDENDO A USAR O MATLAB: RESOLUÇÃO DE PROBLEMAS Profa. Dra. Elenice Weber Stiegelmeier Eng. Renan Franco

Profa. Dra. Elenice Weber Stiegelmeier Eng. Renan Franco Correa

Cornélio Procópio, 2013

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab 1. Introdução MATLAB, que é uma abreviação de MATtrix LABoratory, é

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:

o MATLAB 2- No MATLAB pode se observar 3 janelas, que são: Elenice Weber Stiegelmeier /
o MATLAB 2- No MATLAB pode se observar 3 janelas, que são: Elenice Weber Stiegelmeier /
o MATLAB 2- No MATLAB pode se observar 3 janelas, que são: Elenice Weber Stiegelmeier /

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Podemos também utilizar os M-files , na barra de Menus acessando

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

geralmente tem a seguinte forma: Variável = expressão Elenice Weber Stiegelmeier / Renan Franco Correa 3
geralmente tem a seguinte forma: Variável = expressão Elenice Weber Stiegelmeier / Renan Franco Correa 3

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab O sinal ‘=’ indica que a variável assume o valor da

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

 

Após o ponto com catorze casas decimais

 

351/7

Format long

ans=50.14285714285715

Format short e

Notação científica com quatro casas decimais

351/7

ans=5.0143e+001

 

Notação científica com quinze casas decimais

 

351/7

Format long e

ans=5.014285714285715e+001

Os operadores AND, OR, NOT também podem ser usados.

Os operadores AND, OR, NOT também podem ser usados. Elenice Weber Stiegelmeier / Renan Franco Correa
Os operadores AND, OR, NOT também podem ser usados. Elenice Weber Stiegelmeier / Renan Franco Correa

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab 2. Matrizes e vetores Existem diversas formas de se montar uma

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

1:5:20 % cria o vetor coluna v = [1 6 11 16] ans = 1 6
1:5:20 % cria o vetor coluna v = [1 6 11 16] ans = 1 6

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab >> 2.71:5.71 ans = 2.7100 3.7100 4.7100 5.7100 >> A =

>> 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]

1 -2 4; 6 0 8] >> B = [ 3 1 -2; 4 0 -3;
1 -2 4; 6 0 8] >> B = [ 3 1 -2; 4 0 -3;

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab >> A+B % Adição >>B-A % Subtração  Multiplicação matrizes:

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

identidade, dada sua ordem. >> eye(3) ans = 1 0 0 0 1 0 0 0
identidade, dada sua ordem. >> eye(3) ans = 1 0 0 0 1 0 0 0

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab  linspace : cria um vetor linearmente espaçado. Precisamos fornecer como

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) ans =

1.0000

4.5000

% cria um vetor com N = 5 pontos entre x1 = 1 e x2 = 15.

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

>>det(A)

0

1; -1

2

1; 0 -2 -1]

% determinante da matriz A

>> det(B) % determinante da matriz B

inv: retorna a inversa da matriz de entrada

>> C = [0

>> inv(C)

>> D = [1

>> inv(D)

1 ; 1 2]

% Matriz inversa de C

2

3; 4

6

8; -1 2 3]

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

polinômio característico da matriz A ans = 1.0000 -5.0000 -2.0000 Elenice Weber Stiegelmeier / Renan Franco
polinômio característico da matriz A ans = 1.0000 -5.0000 -2.0000 Elenice Weber Stiegelmeier / Renan Franco

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Isso significa que o polinômio característico é .  eig :

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) ans =

% define os autovalores da matriz A

-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

.

D = -2 0 0 1 >> A*V-V*D ans = 0 0 0 0 . Elenice
D = -2 0 0 1 >> A*V-V*D ans = 0 0 0 0 . Elenice

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab 3. Funções Matemáticas O MatLab possui diversas funções matemáticas elementares, as

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.

Trabalham com valores de ângulos expressos em radianos. Exemplo: >> cos(pi) ans = -1 >> acos(ans)

Exemplo:

>> cos(pi)

ans =

-1

>> acos(ans)

ans =

3.1416

>> sin(pi/2)

ans =

1

3.2 Funções exponenciais

ans = 3.1416 >> sin(pi/2) ans = 1 3.2 Funções exponenciais Elenice Weber Stiegelmeier / Renan
ans = 3.1416 >> sin(pi/2) ans = 1 3.2 Funções exponenciais Elenice Weber Stiegelmeier / Renan
ans = 3.1416 >> sin(pi/2) ans = 1 3.2 Funções exponenciais Elenice Weber Stiegelmeier / Renan

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Exemplo: >> log(exp(10)) ans = 10 >> sqrt(log10(ans)) ans = 1

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

respectivamente, o polinômio e o valor de sua variável independente. Exemplo:

polyval:

retorna

o

valor

numérico

do

polinômio

ou

a

imagem

de

>> polyval(p,1)

% valor numérico do polinômio p(1).

ans =

12

um

polinômio,

dados

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.

é possível efetuar a soma desde que os polinômios sejam iguais. Elenice Weber Stiegelmeier / Renan
é possível efetuar a soma desde que os polinômios sejam iguais. Elenice Weber Stiegelmeier / Renan

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab >> p = [1 0 -3 -1 2]; >> f =

>> p = [1 0 -3 -1 2]; >> f = [0 4 -2 5 -16]; >> p + f ans =

1

4

-5

4

-14

Multiplicação por escalar:

>> k = 2; >> k*p ans =

2 0

-6

-2

4

e k = 2

Seja

conv: cria uma matriz resultante da multiplicação de polinômios.

.

>> g = [1 5 6]; >> h = [2 4]; >> conv(g, h) ans

>> g = [1 5 6]; >> h = [2 4]; >> conv(g, h) ans =

2

14

32

24

Isso significa que

.

Seja

deconv: cria duas matrizes a partir da divisão de polinômio, q = quociente e r = resto.

.

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

usando o seguinte comando: >> polyval(g,-2) ans = 0 Elenice Weber Stiegelmeier / Renan Franco Correa
usando o seguinte comando: >> polyval(g,-2) ans = 0 Elenice Weber Stiegelmeier / Renan Franco Correa

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab 4. Funções e scripts Funções e scripts são sequências de comandos

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,

entrada e nome é o próprio nome da função.

, saidaN são os parâmetros de saída, entrada 1,

, entradaN são os parâmetros de

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.

MatLab possui duas estruturas de repetica: for e while . A condição da estrutura for é

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.

de incr . O incremento é considerado unitário caso seja omitido. Elenice Weber Stiegelmeier / Renan
de incr . O incremento é considerado unitário caso seja omitido. Elenice Weber Stiegelmeier / Renan

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Abaixo segue um exemplo de cálculo de somatório, usando-se o comando

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;

soma = 0; for i = 1:1:n x(i)= 0.11; soma = soma + x(i);

end

% Entrada

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:

.

ou digitar na tela de comandos a seguinte estrutura: . Elenice Weber Stiegelmeier / Renan Franco
ou digitar na tela de comandos a seguinte estrutura: . Elenice Weber Stiegelmeier / Renan Franco

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Exemplo: >> [soma]=somatorio(n) soma = 3.299999999999999 Uma estrutura condicional

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.

condicionais básicas do Matlab estão listadas a seguir. As estruturas 1 e 2 são casos particulares

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

B = input('Entre com o valor de B = ');

if A==B display('A e B iguais.') % Exibe o texto na janela de comandos.

else

%Solicita ao usuário o valor

display('A e B diferentes.')

end

ao usuário o valor display( 'A e B diferentes.' ) end Elenice Weber Stiegelmeier / Renan
ao usuário o valor display( 'A e B diferentes.' ) end Elenice Weber Stiegelmeier / Renan

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Exemplo 2: a = input( 'Entre com o valor de a

Exemplo 2:

a = input('Entre com o valor de a = ');

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

%Solicita ao usuário o valor

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:

em uma mesma figura. Para isso, deve-se usar a seguinte notação: Elenice Weber Stiegelmeier / Renan
em uma mesma figura. Para isso, deve-se usar a seguinte notação: Elenice Weber Stiegelmeier / Renan

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Figura 1 - Gráfico gerado para a função Exemplo: >> x
Aprendendo a usar o MatLab Figura 1 - Gráfico gerado para a função Exemplo: >> x

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.

.

plot(x, y, x, 2*y); Os comandos acima geram a Figura 2. . Figura 2 – Gráfico

Figura 2 Gráfico gerado para as funções

geram a Figura 2. . Figura 2 – Gráfico gerado para as funções Elenice Weber Stiegelmeier
geram a Figura 2. . Figura 2 – Gráfico gerado para as funções Elenice Weber Stiegelmeier

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Para gerar gráficos em janelas diferentes usa-se o comando figure (n)

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 confusa-se os comandos especificados a seguir:

de ‘ conf ’ usa-se os comandos especificados a seguir:  plot3 : plota pontos e

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

%%%%%%%%%%%%%%%%%%%%%%% figure (3) t = 0:0.1:10*pi; f1 = t.*sin(t); Elenice Weber Stiegelmeier / Renan Franco Correa
%%%%%%%%%%%%%%%%%%%%%%% figure (3) t = 0:0.1:10*pi; f1 = t.*sin(t); Elenice Weber Stiegelmeier / Renan Franco Correa

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab f2 = t.*cos(t); plot3(f1,f2,t) grid on ; title 'Plot 3D' xlabel

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:

'z' Exemplo de gráfico em 3D gerado em MatLab: 6. Resolução numérica de equações A seguir,

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 , ou seja,

, um problema

que se coloca

é

o

de calcular

o valor

numérico de

), o

. Porém, se o grau n do polinômio for elevado (digamos,

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

Métodos de Horner e Briot-Ruffini Algoritmo : Método de Horner Elenice Weber Stiegelmeier / Renan Franco
Métodos de Horner e Briot-Ruffini Algoritmo : Método de Horner Elenice Weber Stiegelmeier / Renan Franco

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab Abaixo segue um exemplo utilizando o método de Horner para calcular

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

clear all; clc; %limpar variáveis e tela de comando

a = [1 2 1]; % Ex: P(x) = x^2 + 2x+1

x0 = 1;

n = length(a);

result = a(1); for i = 2:n result = result*x0 + a(i);

end fprintf('\nO valor do polinomio aplicado em x = %g é:\n',x0)% Exibe a solução disp(result); end

an] no ponto x0

% Valor numérico em x = 1.

% tamanho da matriz a

% iteração do método de Horner

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.

polinômio, usando-se o comando for e salvo como uma function . Elenice Weber Stiegelmeier / Renan
polinômio, usando-se o comando for e salvo como uma function . Elenice Weber Stiegelmeier / Renan

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab % Método de Briot Ruffini % Entradas: n - grau do

% 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 entre a e b tal que

uma função contínua em .

. Se

, então, existe pelo menos um ponto

função contínua em . . Se , então, existe pelo menos um ponto Elenice Weber Stiegelmeier
função contínua em . . Se , então, existe pelo menos um ponto Elenice Weber Stiegelmeier

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab 6.2.1 Método da Bisseção Seja uma função contínua no intervalo ta

6.2.1 Método da Bisseção

Seja

uma função contínua no intervalo

ta que

e seja

do método é reduzir a amplitude do intervalo, até atingir a precisão requerida divisões sucessivas no intervalo.

Algoritmo:

dado. A ideia , através de

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

f(x1)*f(x0) > 0 disp( 'Não tem raiz nesse intervalo' ) Elenice Weber Stiegelmeier / Renan Franco
f(x1)*f(x0) > 0 disp( 'Não tem raiz nesse intervalo' ) Elenice Weber Stiegelmeier / Renan Franco

Aprendendo a usar o MatLab

Aprendendo a usar o MatLab else while abs(x1-x0) > erro, x=(x0+x1)/2; if f(x)*f(x0) > 0,  

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

end ; end ; disp( 'A raiz aproximada é ' ) disp(x); end Elenice Weber Stiegelmeier
end ; end ; disp( 'A raiz aproximada é ' ) disp(x); end Elenice Weber Stiegelmeier