MATLAB Avançado. Melissa Weber Mendonça 1 2011.2. 1 Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.



Documentos relacionados
MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

MATLAB Avançado. Melissa Weber Mendonça

Resolução de sistemas lineares

Capítulo 22 Otimização. Introdução ao MATLAB p.1/18

Introdução ao MATLAB

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

MATLAB para H-Álgebra Linear II

07/03/07 1ª aula de Matlab 10:30 12:00

Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser:

JinSol, uma interface em Java para solvers lineares.

Matlab Módulo Avançado

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Sistema de equações lineares

Processamento Digital de Sinais Aula 05 Professor Marcio Eisencraft fevereiro 2012

IMPLEMENTAÇÃO E RESOLUÇÃO DE MODELOS MATEMÁTICOS UTILIZANDO A PLANILHA EXCEL

criar u u = E(:,1) criar b b=a(:,3)

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Para além das funções (comandos) pré-definidas no matlab, o utilizador pode também criar as suas próprias funções

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

Prova de Admissão para o Mestrado em Matemática IME-USP

Exercícios Teóricos Resolvidos

FACULDADE DE CIÊNCIA E TECNOLOGIA. Cursos de Engenharia. Prof. Álvaro Fernandes Serafim

Tutorial de Matlab Francesco Franco

Modelagem Digital do Terreno

TRANSFORMAÇÃO LINEAR. Álgebra Linear - Prof a Ana Paula

Aula 4 Estatística Conceitos básicos

2 Pesquisa de valores em uma lista de dados

a m1 A ou [ A] ou A ou A A = a ij para i = 1 m e j = 1 n A=[ Os elementos da diagonal principal são: a ij para i = j

Tecnologia da Informação Prof. Mário Henrique de Souza Pardo Resumo Aula 4

MESTRADO EM MACROECONOMIA e FINANÇAS Disciplina de Computação. Aula 04. Prof. Dr. Marco Antonio Leonel Caetano

Gobooks.com.br. PucQuePariu.com.br

N1Q1 Solução. a) Há várias formas de se cobrir o tabuleiro usando somente peças do tipo A; a figura mostra duas delas.

fx-82ms fx-83ms fx-85ms fx-270ms fx-300ms fx-350ms

Aula 9 Plano tangente, diferencial e gradiente

Algoritmo Iterativo. Dilema do Martelo x Edifício. O Martelo. O Edifício 01/06/2014. Dilema das ações x declarações

Álgebra Linear. André Arbex Hallack Frederico Sercio Feitosa

Controlabilidade e Observabilidade

INTRODUÇÃO AO MAXIMA - PARTE 1

Método de Eliminação de Gauss. Eduardo Camponogara

Um jogo de preencher casas

Discussão de Sistemas Teorema de Rouché Capelli

Programação Funcional. Aula 5. Funções Recursivas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2011.

1 Introdução. 1.1 Motivação da Pesquisa

AV1 - MA (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, , , 980

Banco de Dados Espaciais. Banco de Dados Espaciais

NOÇÕES DE ÁLGEBRA LINEAR

Lista 1 para a P2. Operações com subespaços

CURSO: ADMINISTRAÇÃO Prof Dra. Deiby Santos Gouveia Disciplina: Matemática Aplicada OFERTA DE MERCADO

Potência, uma coisa mais que complicada Parte V

Instituto Superior Técnico Departamento de Matemática Última actualização: 11/Dez/2003 ÁLGEBRA LINEAR A

Cotagem de dimensões básicas

Tópicos Matriciais Pedro Henrique O. Pantoja Natal / RN

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

ITA º DIA MATEMÁTICA BERNOULLI COLÉGIO E PRÉ-VESTIBULAR

36 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase

PP 301 Engenharia de Reservatórios I 11/05/2011

Variáveis aleatórias contínuas e distribuiçao Normal. Henrique Dantas Neder

Exercícios resolvidos sobre Função de probabilidade e densidade de probabilidade

MD Sequências e Indução Matemática 1

Gráficos tridimensionais. Introdução ao MATLAB p.1/31

Preenchimento de Áreas e de Polígonos. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro

Fundamentos Tecnológicos

4- PROJETO DE BANCO DE DADOS

QUESTÕES COMENTADAS E RESOLVIDAS

É usual representar uma função f de uma variável real a valores reais e com domínio A, simplesmente por y=f(x), x A

Aula Teórica 16: Estruturas de Dados Heterogêneas

Álgebra Linear. Mauri C. Nascimento Departamento de Matemática UNESP/Bauru. 19 de fevereiro de 2013

f (x) = x Marcelo Viana Instituto Nacional de Matemática Pura e Aplicada Marcelo Viana

Exercícios 1. Determinar x de modo que a matriz

Curvas em coordenadas polares

28 de agosto de MAT140 - Cálculo I - Derivação Impĺıcita e Derivadas de Ordem Superior

Trabalho de Implementação Jogo Reversi

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Implementar algoritmos de solução de sistemas esparsos de grande porte utilizando métodos iterativos não-estacionários e armazenamento otimizado.

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Universidade Federal de São Carlos Departamento de Matemática Curso de Cálculo Numérico - Turma E Resolução da Primeira Prova - 16/04/2008

CADASTRO NACIONAL DE CRIANÇAS E ADOLESCENTES ACOLHIDOS

I. Cálculo Diferencial em R n

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Mini-curso de MATLAB e Octave para Cálculo Numérico

TRANSFORMAÇÕES LINEARES. Álgebra Linear e Geometria Analítica Prof. Aline Paliga

MATEMÁTICA A - 12o Ano N o s Complexos - Equações e problemas

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

R é o conjunto dos reais; f : A B, significa que f é definida no conjunto A (domínio - domain) e assume valores em B (contradomínio range).

Truques e Dicas. = 7 30 Para multiplicar fracções basta multiplicar os numeradores e os denominadores: 2 30 = 12 5

Comandos de repetição while

UFV Universidade Federal de Viçosa DMA Departamento de Matemática MAT 138 Noções de Álgebra Linear

Sistemas de Apoio à Decisão

Exercícios Adicionais

ALGORITMOS E FLUXOGRAMAS

CAPÍTULO 6 TRANSFORMAÇÃO LINEAR

Linear Solver Program - Manual do Usuário

4 a LISTA DE EXERCÍCIOS Valores Próprios e Vectores Próprios Álgebra Linear - 1 o Semestre /2014 LEE, LEGI, LEIC-TP, LETI

Lista de Exercícios 3 Estrutura Condicional

Informática no Ensino de Matemática Prof. José Carlos de Souza Junior

Conceitos básicos da linguagem C

Mini-curso Octave/MATLAB

ENDEREÇAMENTO DE REDES

Transcrição:

MATLAB Avançado Melissa Weber Mendonça 1 1 Universidade Federal de Santa Catarina 2011.2 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 1 / 46

Exemplo >> x = -3:0.1:3; >> [x,y] = meshgrid(x); >> z = x.^2+3*y-x.*y.^2 >> h = surf(x,y,z); >> set(h, cdata,rand(size(z))) >> set(h, edgecolor, k ) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 2 / 46

Outros comandos: trimesh, trisurf Às vezes, é mais conveniente mostrarmos os gráficos usando uma triangulação do domínio. Para isto, usamos os comandos trimesh ou trisurf junto com o comando delaunay, que cria a triangulação do domínio: Exemplo: >> [x,y] = meshgrid(-3:0.5:3); >> tri = delaunay(x,y) >> z = x.^2+3*y-x.*y.^2; >> trimesh(tri,x,y,z) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 3 / 46

Volumes: slice Quando temos um gráfico de volume, por exemplo, de um sólido preenchido, podemos visualizar seções bidimensionais deste volume usando o comando >> slice(x,y,z,v,xslice,yslice,zslice) para visualizarmos o volume definido por v = f (x, y, z) na superfície definida por xslice, yslice, zslice. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 4 / 46

Exemplo Queremos visualizar o volume definido por v = xe ( x2 y 2 z 2 ) com 2 x 2, 2 y 2 e 2 z 2. >> [x,y,z] = meshgrid(-2:.2:2); >> v = x.*exp(-x.^2-y.^2-z.^2); >> xslice = [-1.2,.8,2]; >> yslice = 0; >> zslice = []; >> slice(x,y,z,v,xslice,yslice,zslice) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 5 / 46

Gráficos com funções anônimas Suponha que queremos passar uma função como argumento para outra função: por exemplo, gostaríamos de usar um comando do tipo >> plot(x,f(x)) para a função f (x) = x 2 + 1. Para isso, podemos definir uma função anônima usando a seguinte sintaxe: e, em seguida >> f = @(x) x.^2+1 >> x = -1:0.1:1 >> plot(x,f(x)) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 6 / 46

Funções anônimas Se quisermos criar uma função anônima com mais de uma variável, usamos >> f = @(x,y,z,t) x+y+z+t Exemplo: >> x = -3:0.1:3; >> [x,y] = meshgrid(x); >> f = @(x,y) x.^2+3*y-x.*y.^2 >> surf(x,y,f(x,y)); M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 7 / 46

Resolução de equações lineares e não-lineares em MATLAB M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 8 / 46

Comandos básicos de álgebra linear: det Para calcularmos o determinante de uma matriz quadrada A, usamos o comando >> det(a) Exemplo: >> A = [1 2 0; 3 1 4; 5 2 1] >> det(a) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 9 / 46

Comandos básicos de álgebra linear: det Para calcularmos o determinante de uma matriz quadrada A, usamos o comando >> det(a) Exemplo: >> A = [1 2 0; 3 1 4; 5 2 1] >> det(a) >> B = [1 2 3;4 5 6;7 8 9] >> det(b) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 9 / 46

Comandos básicos de álgebra linear: eig Para calcularmos os autovalores de (A), usamos >> eig(a) Para calcularmos também os autovetores, usamos >> [V,D] = eig(a) onde V tem os autovetores de A nas colunas, e D é uma diagonal com os autovalores de A. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 10 / 46

Exemplo >> eig(eye(n,n)) >> [V,D] = eig(eye(n,n)) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 11 / 46

Exemplo >> A = [1 2 3;4 5 6;7 8 9]; >> [V,D] = eig(a) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 11 / 46

Comandos básicos de álgebra linear: inv Para calcularmos a inversa de uma matriz quadrada e inversível A, usamos o comando >> inv(a) Exemplo: >> M = [1 4 3;2 1 0;0 0 1]; >> inv(m) >> inv(m)*m M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 12 / 46

Comandos básicos de álgebra linear: inv Para calcularmos a inversa de uma matriz quadrada e inversível A, usamos o comando >> inv(a) Exemplo: >> A = [1 2 3;4 5 6;7 8 9]; >> inv(a) >> inv(a)*a M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 12 / 46

Resolução Sistemas Lineares no MATLAB Aqui, vamos supor que queremos resolver um sistema linear, ou seja, um problema do tipo Encontrar x R n tal que Ax = b com A R m n e b R m. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 13 / 46

Sistemas quadrados: usando inv Primeiramente, se a matriz A for quadrada e inversível, podemos encontrar x = A 1 b. usando o comando >> x = inv(a)*b M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 14 / 46

Sistemas quadrados: o operador \ Se, por outro lado, não for desejável encontrar a inversa da matriz A, podemos usar o operador \ para resolver Ax = b: >> x = A\b Se A for inversível, x = inv(a)*b. Senão, a solução não é confiável! M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 15 / 46

Sistemas quadrados: decomposição LU Sabemos que a eliminação gaussiana leva uma matriz A em duas matrizes L e U tais que A = LU Assim, Ax = b (LU)x = b { Ly = b Ux = y M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 16 / 46

Sistemas quadrados: lu Para encontrarmos a decomposição LU de uma matriz A no MATLAB, usamos o comando >> [L,U] = lu(a) Podemos em seguida resolver o sistema Ax = b fazendo >> y = L\b >> x = U\y M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 17 / 46

Sistemas quadrados: linsolve Se não quisermos nos preocupar com o algoritmo usado na resolução do sistema, temos uma outra opção no comando linsolve. >> x = linsolve(a,b) resolve o sistema linear Ax = b usando a fatoração LU caso a matriz seja quadrada. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 18 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 3 17 10 1 1. A = 2 4 2, b = 2 6 18 12 3 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 19 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 3 17 10 1 1.85417 1. A = 2 4 2, b = 2 x = 0.35417 6 18 12 3 0.14583 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 19 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 1 4 7 1 2. A = 2 5 8, b = 2 2 5 8 3 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 20 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 1 4 7 1 2. A = 2 5 8, b = 2 x =?? 2 5 8 3 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 20 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 3. A = ( ) 10 1, b = 1 1 ( ) 1 1 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 21 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 3. A = ( ) 10 1, b = 1 1 ( ) 1 1 x = ( ) 0 1 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 21 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 4. A = ( ) 1.0001 1, b = 1 1 ( ) 2 2 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 22 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 4. A = ( ) 1.0001 1, b = 1 1 ( ) 2 2 x = ( ) 0 2 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 22 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 4. A = ( ) 1.0001 1, b = 1 1 ( ) 2.0001 2 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 22 / 46

Exemplos Testar a solução com inv(a)*b A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) 4. A = ( ) 1.0001 1, b = 1 1 ( ) 2.0001 2 x = ( ) 1 1 Este sistema é chamado mal-condicionado: uma mudança pequena no lado direito muda completamente a solução. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 22 / 46

Sistemas retangulares Para resolver sistemas em que A é m n mas m n, podemos repetir os comandos, com algumas ressalvas: inv(a)*b agora não funciona! A 1 não está definida para matrizes retangulares. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 23 / 46

Sistemas retangulares Para resolver sistemas em que A é m n mas m n, podemos repetir os comandos, com algumas ressalvas: x = A\b é a solução exata, caso esta exista; senão, é a solução do sistema em mínimos quadrados. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 23 / 46

Sistemas retangulares Para resolver sistemas em que A é m n mas m n, podemos repetir os comandos, com algumas ressalvas: [L,U] = lu(a); U\(L\b) continua funcionando, mas agora U é do tamanho de A e L é quadrada. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 23 / 46

Sistemas retangulares Para resolver sistemas em que A é m n mas m n, podemos repetir os comandos, com algumas ressalvas: linsolve(a,b) resolve o sistema através da decomposição QR de A: A = QR, onde Q é ortogonal e quadrada, e R é (quase) triangular superior. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 23 / 46

Exemplo Testar a resolução usando x = A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) x 1 2 0 1 1 0 1 1 0 x 2 1 x 1 2 1 1 3 = 1 1 x 4 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 24 / 46

Exemplo Testar a resolução usando x = A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) x 1 2 0 1 1 0 1 1 0 x 2 4 x 1 2 0 1 3 = 2 4 x 4 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 25 / 46

Exemplo Testar a resolução usando x = A\b [L,U] = lu(a); U\(L\b) linsolve(a,b) x 1 2 0 1 1 0 1 1 0 x 2 1 x 1 2 0 1 3 = 5 1 x 4 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 26 / 46

Métodos Iterativos para Sistemas Lineares pcg Gradiente conjugado precondicionado bicg Gradiente bi-conjugado (gradiente conjugado para matrizes não necessariamente simétricas) gmres Generalized minimum residual method (com restarts) lsqr LSQR (quadrados mínimos) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 27 / 46

Resolução de equações não-lineares Agora, queremos resolver o problema de encontrar x R n tal que F (x) = 0 onde F : R n R m (onde m ou n podem ser iguais a 1). M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 28 / 46

Equação não linear a uma variável: fzero Aqui, o problema que nos interessa é encontrar uma raiz da equação onde f : R R. Para isto usamos o comando f (x) = 0 >> x = fzero(fun,x0) Mas: quem é fun? É a referência (function handle) da função f! M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 29 / 46

Referências a funções definidas inline Podemos usar funções anônimas para chamar fzero. Exemplo: ou ainda >> quadratica = @(x) x.^2-4; >> x = fzero(quadratica,6) >> x = fzero(@(x) x.^2-4,6) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 30 / 46

Referências a funções definidas em arquivo Se a função para a qual gostaríamos de encontrar uma raiz estiver em um arquivo próprio, no formato [y] = minhafuncao(x) comandos Podemos chamar a função fzero a partir do ponto x0, escrevendo >> x = fzero(@minhafuncao,x0) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 31 / 46

Exemplo Encontrar uma das raizes de f (x) = x 2 4 a partir do ponto x = 6. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 32 / 46

Exemplo Encontrar uma das raizes de f (x) = x 2 4 a partir do ponto x = 6. >> quadratica = @(x) x.^2-4; >> fzero(quadratica,-6) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 32 / 46

Exemplo Encontrar uma raiz de f (x) = e 2x 3. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 33 / 46

Exemplo Encontrar uma raiz de f (x) = e 2x 3. >> fun = @(x) exp(2*x)-3; >> fzero(fun,0) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 33 / 46

Raizes de um polinômio: roots Para encontrar as raizes de um polinômio de grau n da forma p(x) = a 0 + a 1 x + a 2 x 2 +... + a n x n primeiramente representamos este polinômio como um vetor linha p no MATLAB, cujas componentes são os coeficientes dos termos em ordem descendente de grau, ou seja, Em seguida, usamos o comando >> p = [a n a n 1 a 2 a 1 a 0 ] >> r = roots(p) resultando em um vetor coluna r com as raizes deste polinômio. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 34 / 46

Exemplo p(x) = t 3 + 2t 2 5t 6 >> p = [1 2-5 -6] >> roots(p) Figura: p(x) = t 3 + 2t 2 5t 6 e suas raizes. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 35 / 46

Sistema de equações não lineares: fsolve Para encontrarmos a solução de um sistema de equações não lineares da forma F (x) = 0 onde F : R n R m, usamos a função fsolve, identicamente à função fzero: >> fsolve(@minhafuncao,x0) se utilizarmos uma função em arquivo, ou se utilizarmos uma função anônima. >> fsolve(fun,x0) Observação: Este comando faz parte da Optimization Toolbox, que pode não estar disponível na sua instalação do MATLAB. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 36 / 46

Exemplo Resolver o sistema de equações { y1 = 3x 2 1 + 4x 2 2 16 y 2 = 2x 2 1 3x 2 2 5 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 37 / 46

Exemplo Resolver o sistema de equações { y1 = 3x 2 1 + 4x 2 2 16 y 2 = 2x 2 1 3x 2 2 5 >> fun = @(x) [3*x(1).^2+4*x(2).^2-16; 2*x(1).^2-3*x(2).^2-5]; >> fsolve(fun,[1;1]) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 37 / 46

Exemplo Encontrar a raiz de [ x F (x) = 1 2 + x ] 2x 3 sin(x 1 + 2x 2 3x 3 ) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 38 / 46

Exemplo Encontrar a raiz de [ x F (x) = 1 2 + x ] 2x 3 sin(x 1 + 2x 2 3x 3 ) >> fun = @(x) [x(1).^2+x(2).*x(3); sin(x(1)+2*x(2)-3*x(3))]; >> fsolve(fun,[1;1;1]) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 38 / 46

Exemplo Encontrar a raiz de [ x F (x) = 1 2 + x ] 2x 3 sin(x 1 + 2x 2 3x 3 ) >> fun = @(x) [x(1).^2+x(2).*x(3); sin(x(1)+2*x(2)-3*x(3))]; >> fsolve(fun,[1;1;1]) >> fsolve(fun,[0;0;0]) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 38 / 46

Otimização: Minimização de funções Agora, queremos resolver o problema minimizar f (x). M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 39 / 46

Minimização de uma função de várias variáveis: fminsearch Para encontrarmos o mínimo de uma função real de várias variáveis, a partir de um ponto inicial x0, usamos o comando >> x = fminsearch(@funcao,x0) Se quisermos também saber o valor da função no ponto de mínimo, usamos a sintaxe >> [x,fval] = fminsearch(@funcao,x0) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 40 / 46

Exemplo Minimizar a função a partir do ponto inicial x 0 = (0, 0). f = e x 1 (4x 2 1 + 2x 2 2 + 4x 1 x 2 + 2x 2 + 1) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 41 / 46

Exemplo Minimizar a função a partir do ponto inicial x 0 = (0, 0). f = e x 1 (4x 2 1 + 2x 2 2 + 4x 1 x 2 + 2x 2 + 1) >> f=@(x)exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); >> fminsearch(f,[0;0]) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 41 / 46

Exemplo Minimizar f (x) = 100(x 2 x 2 1 ) 2 + (1 x 1 ) 2 M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 42 / 46

Exemplo Minimizar f (x) = 100(x 2 x 2 1 ) 2 + (1 x 1 ) 2 >> f = @(x) 100*(x(2)-x(1).^2).^2+(1-x(1)).^2 >> fminsearch(f,[0;0]) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 42 / 46

Minimização de uma função de uma variável com restrições: fminbnd Para encontrarmos o mínimo de uma função de uma variável dentro de um intervalo [a, b], usamos o comando >> x = fminbnd(@funcao,a,b) Se quisermos também saber o valor da função no ponto de mínimo, usamos a sintaxe >> [x,fval] = fminbnd(@funcao,a,b) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 43 / 46

Exemplo Minimizar f (x) = x nos intervalos [0, 1] e [ 10, 1]. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 44 / 46

Exemplo Minimizar f (x) = x nos intervalos [0, 1] e [ 10, 1]. >> f = @(x) x; >> fminbnd(f,0,1) >> fminbnd(f,-10,1) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 44 / 46

Exemplo Minimizar f (x) = x 2 1 no intervalo [1, 3]. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 45 / 46

Exemplo Minimizar f (x) = x 2 1 no intervalo [1, 3]. >> f = @(x) x.^2; >> fminbnd(f,1,3) M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 45 / 46

interp1, interp2, interp3 e interpn Para interpolarmos um conjunto de pontos em 1D, 2D, 3D ou em N dimensões, usamos os comandos interp1 interp2 interp3 interpn respectivamente. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.2 46 / 46