Introdução ao Scilab 3.0 Parte 2

Documentos relacionados
Introdução ao Scilab

Unidade 3: Linguagem de programação

Introdução a Matrizes

INTRODUÇÃO AO SCILAB

Introdução ao Scilab 3.0 Parte 3

AULA 4 TEÓRICA- MATLAB VERSÃO: FEVEREIRO DE 2017

Aula Teórica 14 Matrizes

Minicurso: Introdução ao SciLab

Foi criado em 1990 por pesquisadores do INRIA e da ècole Nationale des Ponts et Chaussées (França), sendo gratuito e similar ao Matlab.

Minicurso MATLAB BÁSICO MÓDULO 2

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

NÍVEL BÁSICO CAPÍTULO II

Análise multivariada

Mini curso básico. Gilberto A. S. Segundo Fábio Carmo. Programa de Educação Tutorial

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

Vetores, Matrizes e Gráficos

Revisão: Matrizes e Sistemas lineares. Parte 01

Sistemas Lineares. Marina Andretta/Franklina Toledo ICMC-USP. 4 de março de 2015

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

AULA 2 1) Comando linspace 2) Indexação de matriz

PESQUISA OPERACIONAL

Prof. Dr. Marco Antonio Leonel Caetano

Eduardo. Matemática Matrizes

A = B, isto é, todo elemento de A é também um elemento de B e todo elemento de B é também um elemento de A, ou usando o item anterior, A B e B A.

Sistemas e Sinais. Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis

Unidade I MATEMÁTICA. Prof. Celso Ribeiro Campos

-->A = [1 2 3; 4 5 6] A = Matrizes

Agenda INTRODUÇÃO. Matrizes. Introdução; Declaração de Matrizes; Algumas operações com matrizes; Algumas funções aplicadas a matrizes; Exercícios.

Agenda. Conjunto de variáveis. Relembrando Vetor INTRODUÇÃO. Matrizes.

Capítulo 1: Fração e Potenciação

Aula Teórica 15 Matrizes

GAAL Conhecendo alguns comandos básicos do Maple 17

Agenda. Aula Teórica 13 Matrizes Material Didático Unificado.

Introdução ao MATLAB 6.1

GAN00140-Álg. Linear GAN00007 Int à Alg. Linear Aula 3 2ª. Parte: Matrizes e Operações Matriciais

Álgebra Linear Semana 02

MÓDULO 2 POTÊNCIA. Capítulos do módulo:

Polinômios no Scilab. Laura Goulart. 1 de Junho de 2016 UESB. Laura Goulart (UESB) Polinômios no Scilab 1 de Junho de / 8

Polinômios no Scilab. Laura Goulart. 27 de Novembro de 2018 UESB. Laura Goulart (UESB) Polinômios no Scilab 27 de Novembro de / 1

Universidade Federal de São Carlos UFSCar Departamento de Engenharia de Produção

E essa procura pela abstração da natureza foi fundamental para a evolução, não só, mas também, dos conjuntos numéricos

Renato Martins Assunção

Conjuntos. Notações e Símbolos

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

Agenda do Dia Aula 14 (19/10/15) Sistemas Lineares: Introdução Classificação

Introdução ao Scilab. Laura Goulart. 27 de Novembro de 2018 UESB. Laura Goulart (UESB) Introdução ao Scilab 27 de Novembro de / 11

Introdução ao Scilab

Exponencial de uma matriz

Introdução ao software MatLab

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

INTRODUÇÃO À ÁLGEBRA LINEAR. Prof.ª Chiara Maria S. L. Dias 3ª fase Licenciatura em Matemática

Algoritmos Numéricos 2 a edição

Murilo F. Tomé ICMC-USP

Material Didático Unificado.

Guia-1. a 11 a a 1n a 21 a a 2n A = a m1 a m2... a mn

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Parte I. Álgebra Linear. Sistemas Dinâmicos Lineares. Conteúdo de Revisão de Álgebra Linear. Vetores. Março de 2014

Parte 1 - Matrizes e Sistemas Lineares

Matrizes e Linearidade

Algoritmo e Programação Matemática

Vetores e Geometria Analítica

Fundamentos de Matemática Curso: Informática Biomédica

x 1 + b a 2 a 2 : declive da recta ;

Aula 03 - Introdução ao Scilab (p2)

Semana 10: Vetores. Material Didático Unificado.

Equações não lineares

Computação e Programação

Matrizes e sistemas de equações algébricas lineares

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Introdução ao Scilab. Comandos de entrada e saída de dados.

Sinais e Sistemas Aula 1 - Revisão

Fundamentos Tecnológicos

Introdução ao MATLAB

Introdução ao Scilab

Uma matriz m x n é um quadro de elementos dispostos em m linhas e n colunas. Os valores de m e n são sempre positivos e inteiros.

Notas em Álgebra Linear

Conceitos Básicos Linguagem C

[a11 a12 a1n 7. SISTEMAS LINEARES 7.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo

Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701

Modelo Matemático simples

Sistemas de Controle 1

Álgebra Linear e Geometria Anaĺıtica. Matrizes e Sistemas de Equações Lineares

UNIJUI:UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DCEEng: DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS

SISTEMAS LINEARES. Solução de um sistema linear: Dizemos que a sequência ou ênupla ordenada de números reais

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 3. Transformações Geométricas

Notas para o Curso de Algebra Linear Il Dayse Haime Pastore 20 de fevereiro de 2009

Conhecendo a Linguagem de Programação C

FUNDAMENTOS DE SISTEMAS LINEARES PARTE 1

Chama-se conjunto dos números naturais símbolo N o conjunto formado pelos números. OBS: De um modo geral, se A é um conjunto numérico qualquer, tem-se

Álgebra Linear. Professor Alessandro Monteiro. 1º Sábado - Matrizes - 11/03/2017

Sistemas Lineares e Matrizes

AUTOVALORES E AUTOVETORES

O TEOREMA DE CAYLEY-HAMILTON E AS MATRIZES INVERSAS

Álgebra Matricial - Nota 06 Matrizes

Econometria. Operações básicas de vetores. Operações básicas de vetores. Operações básicas de vetores. Independência de vetores

Agenda. Conjunto de variáveis. O tipo de dados Vetor INTRODUÇÃO. Vetores.

Resolvendo algebricamente um PPL

Novas Tecnologias no Ensino da Matemática

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C

Vetores. Material Didático Unificado. BCC701 Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência da Computação

Transcrição:

Introdução ao Scilab 3.0 Parte 2 Paulo S. Motta Pires pmotta@dca.ufrn.br Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte NATAL - RN Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 1 / 83

Endereços e Créditos Contatos Contatos Prof. Paulo S. Motta Pires e-mail: pmotta@dca.ufrn.br homepage : www.dca.ufrn.br/~pmotta Este material pode ser copiado livremente, mantidos os créditos. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 2 / 83

Agenda Agenda Parte 1 Introdução: Computação Numérica O Ambiente Scilab Parte 2 Operações Básicas Polinômios, Vetores, Matrizes e Listas Parte 3 Programação Parte 4 Gráficos Considerações Finais Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 3 / 83

Agenda Parte 2 - Detalhes Agenda Operações Básicas: Introdução Funções Internas Polinômios, Vetores, Matrizes, Listas Polinômios Vetores Matrizes Acesso a Elementos Matrizes de Polinômios Matrizes Simbólicas Matrizes Booleanas Operações com Vetores e Matrizes Listas Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 4 / 83

Operações Básicas Interação com o Usuário Interação com o Usuário Scilab como uma calculadora Scilab como um ambiente de programação (tratado na Parte 3) Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 5 / 83

Operações Básicas Linha de Comando Linha de Comando - Scilab como uma Calculadora Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 6 / 83

Ponto-e-vírgula Operações Básicas Ponto-e-vírgula -->// O ponto-e-virgula suprime a apresentacao do resultado -->A = 1; // a variavel A assume o valor 1 -->b = 2; // atribuindo a variavel b o valor 2 -->A + b // Adicao de A e b 3. --> // - Comentário Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 7 / 83

Operações Básicas Nomes de Variáveis Nomes de Variáveis - Case Sensitive incr, INCR, Incr, InCr - representam variáveis DIFERENTES Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 8 / 83

Variáveis Complexas Operações Básicas Complexos -->A = 5 + 2 * %i A = // Atribuindo a A o valor 5 + 2i 5. + 2.i -->B = -2 + %i B = // Atribuindo a B o valor -2 + i --> - 2. + i Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 9 / 83

Operações Básicas Operações com Variáveis Complexas Operações com Variáveis Complexas --> // Operacoes com variaveis complexas -->A * B // Multiplicacao - 12. + i -->A / B // Divisao - 1.6-1.8i -->A + B // Adicao 3. + 3.i -->A - B // Subtracao 7. + i -->sqrt(-2) // Funcao raiz quadrada com argumento negativo 1.4142136i --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 10 / 83

Comandos Operações Básicas Comandos -->m = 1.5; b = 35; c = 24; -->A = 3 * m ^ 2 +... --> 4 * 5 +... --> 5 * 3 A = // Varios comandos em uma unica linha // Um comando em varias linhas 41.75 --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 11 / 83

Operações Básicas Definições de Índices Definições de Índices Um vetor de índices possui a forma geral Variavel = valor_inicial:incremento:valor_final -->I = 1:3 I = // Definindo I como um vetor com 3 posicoes! 1. 2. 3.! -->j = 1:2:5 // Indice j com incremento igual a 2 j =! 1. 3. 5.! -->k = 5:-1:1 k = // Definindo k como um vetor com 5 posicoes! 5. 4. 3. 2. 1.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 12 / 83

Operações Básicas Trabalhando com Ambientes Trabalhando com Ambientes -->// Definindo a e mudando de ambiente -->a = 1.5; pause -1-> // Mudanca no prompt -1->a a = 1.5-1->// Definindo b no novo ambiente -1->b = 2.5; -1->// Mostrando a e b no novo ambiente -1->a, b a = 1.5 b = 2.5-1->// Retornando ao ambiente anterior -->a, b a = // Mostra a e b. Variavel b foi perdida 1.5!--error 4 undefined variable : b -->a = 1.5 // Definindo a no ambiente original a = 1.5 -->pause // Mudando de ambiente -1->b = 1.5 // Definindo b no novo ambiente b = 1.5-1->b = resume(b) // b no ambiente original -->a, b a = 1.5 b = -1->resume // Pode ser usado o comando return 1.5 Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 13 / 83

Exemplo 1 - Funções Internas Operações Básicas Funções Internas - Exemplo 1 Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 14 / 83

Operações Básicas Exemplo 2 - Usando o Editor Funções Internas - Exemplo 2 - Usando o Editor Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 15 / 83

Polinômios Introdução Polinômios Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 16 / 83

Definição pelas Raízes Polinômios Definição - Raízes -->// Polinomio definido pelas suas raizes -->p = poly([1 2], s ) p = 2 2-3s + s --> // Verificacao -->roots(p)! 1.!! 2.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 17 / 83

Polinômios Definição pelos Coeficientes Definição - Coeficientes -->// Polinomio definido pelos seus coeficientes -->q = poly([1 2], s, coeff ) q = 1 + 2s -->roots(q) // Obtendo as raizes do polinomio q --> - 0.5 Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 18 / 83

Polinômios Operações com Polinômios Operações -->p, q p = 2 2-3s + s q = 1 + 2s -->p * q // Multiplicacao 2 3 2 + s - 5s + 2s -->p / q // Divisao 2 2-3s + s ---------- 1 + 2s Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 19 / 83

Polinômios Operações com Polinômios Operações -->[r, q] = pdiv(p,q) q = // Efetuando a divisao: q=quociente, r=resto - 1.75 + 0.5s r = 3.75 -->p + q // Adicao 2 3 - s + s -->p - q // Subtracao 2 1-5s + s Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 20 / 83

Polinômios Polinômios: Obtendo Valores Obtendo Valores -->x = poly(0, x ) x = x -->p = x^2-3*x + 5 p = // definindo o polinomio 2 5-3x + x -->horner(p, 2) // avaliando o polinomio em x = 2 --> 3. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 21 / 83

Vetores Introdução Vetores Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 22 / 83

Vetores: Definições Vetores Definição Dizemos que x é um vetor de dimensão n em R, indicado por x R n, se, e somente se, x 1 x 2 x =. Nessa definição, cada um dos elementos do vetor x, x i, pertence a R, x n x i R O elemento x i é o i-ésimo elemento do vetor x. O vetor x definido anteriormente é um vetor coluna. Para explicitar esta condição, escrevemos x R n 1 Essa notação indica que o vetor x possui n linhas e apenas uma coluna. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 23 / 83

Vetor Coluna Vetores Vetor Coluna -->x = [ 1; 2; 3] // vetor coluna. Elementos separados por ; x =! 1.!! 2.!! 3.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 24 / 83

Vetor Linha Vetores Vetor Linha Um vetor linha, y, de dimensão n em R pode ser escrito na forma y = [ y 1, y 2,..., y n ] Para explicitar a condição de vetor linha, escrevemos y R 1 n Essa notação indica que o vetor y possui apenas uma linha e n colunas. -->y = [ 1 2 3] y = // vetor linha; Elementos separados por espaco! 1. 2. 3.! -->z = [ 4, 5, 6] z = // vetor linha; Elementos separados por virgula! 4. 5. 6.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 25 / 83

Vetor Transposto Vetores Vetor Transposto Se x é um vetor coluna, x T (lê-se x transposto ) é um vetor linha. Essa operação é realizada no Scilab através da utilização do símbolo (apóstrofo). -->x = [1; 2; 3] x = // vetor coluna! 1.!! 2.!! 3.! -->x // x transposto = vetor linha! 1. 2. 3.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 26 / 83

Operações com Vetores Vetores Operações com Vetores x, y R 3 1. 1 x = 2 3 e 4 y = 5 6 -->x = [ 1; 2; 3] x =! 1.!! 2.!! 3.! -->y = [ 4; 5; 6] y =! 4.!! 5.!! 6.! -->size(x) // Definindo o vetor x // Definindo o vetor y // Dimensao do vetor x! 3. 1.! -->size(y) // Dimensao do vetor y! 3. 1.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 27 / 83

Operações com Vetores Vetores Operações com Vetores x, y R 3 1. 1 x = 2 3 e 4 y = 5 6 -->3 * x // Multiplicando x por uma constante! 3.!! 6.!! 9.! -->x / 2! 0.5!! 1.!! 1.5! -->x + y // Dividindo x por uma constante // Somando os dois vetores! 5.!! 7.!! 9.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 28 / 83

Produto Escalar Vetores Produto Escalar Dados dois vetores de mesma dimensão, x, y R n 1, define-se o produto escalar ou produto interno entre x e y através da expressão vetorial, -->x = [ 1; 2; 3]; y = [ 4; 5; 6]; z = x T y -->z = x * y z = // Atribuindo a z o produto escalar entre x e y 32. Em linguagem convencional: n z = x i y i i=1 Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 29 / 83

Produto Vetorial Vetores Produto Vetorial Se os vetores x e y possuem dimensões diferentes, isto é, x R m 1 e y R n 1, podemos definir o produto vetorial ou produto externo entre eles através da expressão, Vamos considerar C = xy T 1 x = 2 e y = 3 [ ] 4 5 -->x = [1; 2; 3]; y = [4; 5]; -->C = x * y C = // Produto vetorial de x por y! 4. 5.!! 8. 10.!! 12. 15.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 30 / 83

Vetores Outros Exemplos de Vetores Outros Vetores -->v = 5: -0.5: 3 // Vetor com elementos decrementados v =! 5. 4.5 4. 3.5 3.! -->m = ones(1:4) // Vetor constituido de elementos iguais a 1 m =! 1. 1. 1. 1.! -->z = zeros(1:5) // Vetor constituido de elementos iguais a 0 z =! 0. 0. 0. 0. 0.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 31 / 83

Matrizes Introdução Matrizes Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 32 / 83

Matrizes Definição Seja R o conjunto dos números reais. Dizemos que A é uma matriz de dimensão m n em R, indicado por A R m n, se, e somente se, a 1,1 a 1,2 a 1,n a 2,1 a 2,2 a 2,n A =...... a m,1 a m,2 a m,n onde cada um dos elementos a i,j R. Nessa notação, a variável m indica o número de linhas e a variável n indica o número de colunas da matriz A. Se A for uma matriz quadrada, o número de linhas é igual ao número de colunas e, então, m = n. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 33 / 83

Representação de Matrizes Matrizes Representação A, B R 2 3 : e A = B = [ 1 2 ] 3 5 8 9 [ 1 2 ] 3 4 5 6 -->A = [1 2 3; 5-8 9] // separados por espaco A =! 1. 2. 3.!! 5. - 8. 9.! -->B = [1, 2, 3; 4, 5, 6] // separados por virgulas B =! 1. 2. 3.!! 4. 5. 6.! -->size(a)! 2. 3.! // Dimensao da matriz A -->size(b) // Dimensao da matriz B! 2. 3.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 34 / 83

Representação de Matrizes Matrizes Representação -->M = [ 1 2 3 4 -->5 6 7 8 -->9 11 13 15] M = // Linhas separadas por <enter>! 1. 2. 3. 4.!! 5. 6. 7. 8.!! 9. 11. 13. 15.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 35 / 83

Operações com Matrizes Matrizes Operações A, B R 2 3 : e A = B = [ 1 2 ] 3 5 8 9 [ 1 2 ] 3 4 5 6 -->2 * A // Multiplicacao por um escalar! 2. 4. 6.!! 10. - 16. 18.! -->A / 2! 0.5 1. 1.5!! 2.5-4. 4.5! -->A + B // Divisao por uma constante // Somando as duas matrizes! 2. 4. 6.!! 9. - 3. 15.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 36 / 83

Matriz Transposta Matrizes Matriz Transposta Se A R m n, a transposta da matriz A, indicada por A T, é tal que A T R n m. A trasposição é indicada pelo símbolo (apóstrofo). -->B = [1, 2, 3; 4, 5, 6] B =! 1. 2. 3.!! 4. 5. 6.! -->size(b) // Dimensao da matriz B! 2. 3.! -->C = B C = // C = transposta da matriz B! 1. 4.!! 2. 5.!! 3. 6.! -->size(c) // Dimensao da matriz C! 3. 2.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 37 / 83

Matrizes Produto de Matrizes - Definição Produto de Matrizes - Definição Se A R m p e B R p n, podemos definir o produto das matrizes A e B, C = A B R m n Observar que, para que possa haver a multiplicação entre duas matrizes, é necessário que o número de colunas da primeira matriz seja igual ao número de linhas da segunda matriz. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 38 / 83

Matrizes Produto de Matrizes - Exemplo Produto de Matrizes - Exemplo e 1 2 3 A = 4 5 6 7 8 9 1 4 B = 2 5 3 6 -->A = [ 1 2 3; 4 5 6; 7 8 9] A =! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! -->B = [ 1 4; 2 5; 3 6] B =! 1. 4.!! 2. 5.!! 3. 6.! -->size(a)! 3. 3.! -->size(b)! 3. 2.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 39 / 83

Matrizes Produto de Matrizes - Exemplo Produto de Matrizes - Exemplo e 1 2 3 A = 4 5 6 7 8 9 1 4 B = 2 5 3 6 -->A * B! 14. 32.!! 32. 77.!! 50. 122. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 40 / 83

Matrizes Especiais Matrizes Matrizes Especiais -->D = ones(2,3) D =! 1. 1. 1.!! 1. 1. 1.! -->E = zeros(3,3) E =! 0. 0. 0.!! 0. 0. 0.!! 0. 0. 0.! -->I = eye(4,4) I = // Matriz Identidade! 1. 0. 0. 0.!! 0. 1. 0. 0.!! 0. 0. 1. 0.!! 0. 0. 0. 1.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 41 / 83

Composição de Matrizes Matrizes Composição de Matrizes -->// Definido as matrizes A, B e C -->A = [1 2; 3 4]; -->B = [5 6; 7 8]; -->C = [9 10; 11 12]; -->// Matriz D: agrupando A, B e C -->D = [A B C] D =! 1. 2. 5. 6. 9. 10.!! 3. 4. 7. 8. 11. 12.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 42 / 83

Composição de Matrizes Matrizes Composição de Matrizes -->// Matriz D -->D D =! 1. 2. 5. 6. 9. 10.!! 3. 4. 7. 8. 11. 12.! -->// Definindo a matriz E a partir dos elementos de D -->E = matrix(d,3,4) E =! 1. 4. 6. 11.!! 3. 5. 8. 10.!! 2. 7. 9. 12.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 43 / 83

Acesso a Elementos de Vetores e Matrizes Formas de Acesso a Elementos Formas de Acesso Utilizando os índices do elemento a ser acessado Utilizando o símbolo : (dois pontos) Utilizando o símbolo $ Utilizando operações booleanas. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 44 / 83

Acesso a Elementos de Vetores e Matrizes Vetores - Acesso por Índice Vetores - Acesso por Índice -->v = [1 2 3 4 5 6 7] v = // definicao do vetor v! 1. 2. 3. 4. 5. 6. 7.! -->v(1) // acesso ao primeiro elemento de v 1. -->v(5) // acesso ao quinto elemento de v 5. --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 45 / 83

Acesso a Elementos de Vetores e Matrizes Vetores - Forma Compacta Vetores -->v = [1 2 3 4 5 6 7] v = // definicao do vetor v! 1. 2. 3. 4. 5. 6. 7.! -->v(2:4) // acesso aos elementos 2, 3 e 4 de v! 2. 3. 4.! -->v(:) // acesso a todos os elementos de v! 1.!! 2.!! 3.!! 4.!! 5.!! 6.!! 7.! -->v(1:2:7) // acesso aos elementos impares de v! 1. 3. 5. 7.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 46 / 83

Acesso a Elementos de Vetores e Matrizes Vetores - Símbolo $ Vetores - Símbolo $ -->v = [1 2 3 4 5 6 7] v = // definicao do vetor v! 1. 2. 3. 4. 5. 6. 7.! -->v($) // acesso ao ultimo elemento de v 7. --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 47 / 83

Acesso a Elementos de Vetores e Matrizes Vetores - Variáveis Booleanas Vetores - Variáveis Booleanas -->v = [1 2 3 4 5 6 7] v = // definicao do vetor v! 1. 2. 3. 4. 5. 6. 7.! -->v([%f %t %f %t %t]) // acesso usando %t e %f! 2. 4. 5.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 48 / 83

Acesso a Elementos de Vetores e Matrizes Matrizes - Acesso por Índices Matrizes - Acesso por Índices -->A = [1 2 3; 4 5 6] A = // Definindo uma matriz A! 1. 2. 3.!! 4. 5. 6.! -->A(1,2) // primeira linha e segunda coluna de A 2. -->M = A([1 2], 2) // primeiro e segundo elementos da segunda coluna M =! 2.!! 5.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 49 / 83

Acesso a Elementos de Vetores e Matrizes Matrizes - Forma Compacta Matrizes - Forma Compacta Através do operador : Scilab implementa formas compactas que permitem acessar elementos de uma matriz. Considerando A R m n, a notação A(k, :) representa a k-ésima linha da matriz A, A(k, :) = [a k,1, a k,2,..., a k,n ] e a notação A(:, k) representa a k-ésima coluna da matriz A, A(:, k) = [a 1,k, a 2,k,..., a m,k ] O símbolo : (dois pontos) assume o significado de todos os elementos. Assim, A(k, :) pode ser lido como todos os elementos da k-ésima linha da matriz A e A(:, k) pode ser lido como todos os elementos da k-ésima coluna da matriz A. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 50 / 83

Acesso a Elementos de Vetores e Matrizes Matrizes - Forma Compacta Matrizes - Forma Compacta -->A = [1 2 3; 4 5 6] A =! 1. 2. 3.!! 4. 5. 6.! -->A(:, 3) // Todos os elementos da terceira coluna de A! 3.!! 6.! -->A(2,:) // Todos os elementos da segunda linha de A! 4. 5. 6.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 51 / 83

Acesso a Elementos de Vetores e Matrizes Matrizes - Forma Compacta Matrizes - Forma Compacta -->A = [1 2 3; 4 5 6] A =! 1. 2. 3.!! 4. 5. 6.! --> // Todos os elementos da terceira, segunda e primeira colunas de A -->A(:, 3:-1:1)! 3. 2. 1.!! 6. 5. 4.! -->A(:, [3 2 1]) // Forma equivalente! 3. 2. 1.!! 6. 5. 4.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 52 / 83

Acesso a Elementos de Vetores e Matrizes Matrizes - Símbolo $ Matrizes - Símbolo $ -->A = [1 2 3; 4 5 6] A =! 1. 2. 3.!! 4. 5. 6.! -->// Primeiro e segundo elementos da segunda coluna de A -->A(1:2, $-1)! 2.!! 5.! -->// Segundo e primeiro elementos da segunda coluna de A -->A($:-1:1, 2)! 5.!! 2.! -->// Acesso ao ultimo elemento de A -->A($) 6. Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 53 / 83

Acesso a Elementos de Vetores e Matrizes Matrizes - Símbolo : Matrizes - Símbolo : Os elementos de uma matriz são armazenados por coluna. -->A = [1 2 3; 4 5 6] A =! 1. 2. 3.!! 4. 5. 6.! -->A(1) // Primeiro elemento de A 1. -->A(5) // Quinto elemento de A 3. -->A(:) // Todos os elementos armazenados por coluna! 1.!! 4.!! 2.!! 5.!! 3.!! 6.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 54 / 83

Acesso a Elementos de Vetores e Matrizes Matrizes - Variáveis Booleanas Matrizes - Variáveis Booleanas -->A = [1 2 3; 4 5 6] A =! 1. 2. 3.!! 4. 5. 6.! -->A([%t %f %f %t]) // Primeiro e quarto elementos! 1.!! 5.! --> A(%t, [2 3]) // Primeiros elementos da colunas 2 e 3! 2. 3.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 55 / 83

Acesso a Elementos de Vetores e Matrizes Modificando Valores Modificando Valores -->A = [1 2 3; 4 5 6] A =! 1. 2. 3.!! 4. 5. 6.! -->A(1,2) = 10 // Atribuir a A(1,2) o valor 10 A =! 1. 10. 3.!! 4. 5. 6.! -->A([1 2], 2) = [-1; -2] // A(1,2) = -1 e A(2,2) = -2 A =! 1. - 1. 3.!! 4. - 2. 6.! -->A(:,1) = [8;5] // A(1,1) = 8 e A(1,2) = 5 A =! 8. - 1. 3.!! 5. - 2. 6.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 56 / 83

Matrizes de Polinômios Matrizes de Polinômios Exemplo -->// Definindo um polinomio -->x = poly(0, x ); p = 2 + 3 * x + x ^ 2 p = 2 2 + 3x + x -->// Definindo uma matriz polinomial, M -->M = [p, p-1; p+1, 2] M =! 2 2!! 2 + 3x + x 1 + 3x + x!!!! 2!! 3 + 3x + x 2! -->// Avaliando a matriz M em x = 2 -->horner(m, 2)! 12. 11.!! 13. 2.! -->// Obtendo a inversa de M -->inv(m)! 2!! 2-1 - 3x - x!! --------------------- --------------------!! 2 3 4 2 3 4!! 1-6x - 11x - 6x - x 1-6x - 11x - 6x - x!!!! 2 2!! - 3-3x - x 2 + 3x + x!! -------------------- --------------------!! 2 3 4 2 3 4!! 1-6x - 11x - 6x - x 1-6x - 11x - 6x - x! -->// Obtendo o determinante de M -->det(m) 2 3 4 1-6x - 11x - 6x - x Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 57 / 83

Matrizes de Polinômios Matrizes de Polinômios Racionais Matrizes de Polinômios Racionais -->// Definindo uma matriz F de polinomios racionais -->s = poly(0, s ); -->F = [ 1/s, (s +1)/(s + 2);... --> s/(s+3), s^2 ] F =! 1 1 + s!! - -----!! s 2 + s!!!! 2!! s s!! ----- -!! 3 + s 1! -->F( num ) // Pegando os numeradores! 1 1 + s!!!! 2!! s s! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 58 / 83

Matrizes de Polinômios Matrizes de Polinômios Racionais Matrizes de Polinômios Racionais -->F F =! 1 1 + s!! - -----!! s 2 + s!!!! 2!! s s!! ----- -!! 3 + s 1! -->F( den ) // Pegando os denominadores! s 2 + s!!!! 3 + s 1! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 59 / 83

Matrizes Simbólicas Matrizes de Polinômios Matrizes Simbólicas -->B = [ 1/%s, (%s + 1)/(%s - 1)] B = // Matriz simbolica! 1 1 + s!! - -----!! s - 1 + s! -->B(1,1) 1 - s -->B(1, $) 1 + s ----- - 1 + s -->A = [1-1 3; 5-2 6]; A(1,1) = %s A =! s - 1 3!!!! 5-2 6! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 60 / 83

Matrizes de Strings Matrizes de Polinômios Matrizes de Strings -->// Matriz de strings -->A = [ x y ; z w+v ] A =!x y!!!!z w+v! -->// Atribuindo valores -->x=1;y=2;z=3;w=4;v=5; // Obtendo o valor numerico dos elementos de A -->evstr(a)! 1. 2.!! 3. 9.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 61 / 83

Matrizes Booleanas Matrizes de Polinômios Matrizes Booleanas -->A = [%t, %f, %t, %f, %f, %f] A = // Matriz booleana A! T F T F F F! -->B = [%t, %f, %t, %f, %t, %t] B = Matriz booleana B! T F T F T T! -->A B // A ou B! T F T F T T! -->A & B // A e B! T F T F F F! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 62 / 83

Operações com Vetores e Matrizes Sistemas de Equações Lineares Sistemas de Equações Lineares Forma matricial de Sistemas de Equações Lineares: Ax = b onde a 1,1 a 1,2 a 1,n a 2,1 a 2,2 a 2,n A =...... a n,1 a n,2 a n,n x 1 x 2 x =. x n b 1 b 2 e b =. b n Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 63 / 83

Operações com Vetores e Matrizes Resolução Sistemas Lineares Resolução Sistemas Lineares Resolver um sistema linear é obter o valor do vetor x. Na situação mais simples, a matriz A é não-singular (admite inversa) e a solução, única, é dada pela expressão No Scilab: --> x = inv(a) * b x = A 1 b Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 64 / 83

Operações com Vetores e Matrizes Resolução Sistemas Lineares Resolução Sistemas Lineares [ ] 2 0 A = 0 4 [ ] 1 b = 8 --> // Solucao de Ax = b usando a funcao inv -->A = [2 0; 0 4] A =! 2. 0.!! 0. 4.! -->inv(a) // Matriz A // A admite inversa! 0.5 0.!! 0. 0.25! -->b = [1; 8] b = // Vetor b! 1.!! 8.! -->x = inv(a) * b x = // Solucao do sistema linear! 0.5!! 2.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 65 / 83

Operações com Vetores e Matrizes Operações com Vetores e Matrizes Operações Básicas com Vetores e Matrizes SÍMBOLO OPERAÇÃO transposta + adição - subtração * multiplicação / divisão à direita Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 66 / 83

Operações com Vetores e Matrizes Operações com Vetores e Matrizes Outras Operações com Vetores e Matrizes SÍMBOLO OPERAÇÃO \ divisão à esquerda ^ exponenciação.* multiplicação elemento-a-elemento.\ divisão, à esquerda, elemento-a-elemento./ divisão, à direita, elemento-a-elemento.^ exponenciação elemento-a-elemento.*. produto de Konecker Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 67 / 83

Divisão à Esquerda Operações com Vetores e Matrizes Resolução - Divisão à Esquerda [ ] 2 0 A = 0 4 [ ] 1 b = 8 --> Resolucao de Ax = b usando o operador \ -->x = A \ b x =! 0.5!! 2.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 68 / 83

Vetores - Operador. Operações com Vetores e Matrizes Vetores - Operador..* - Multiplicação Elemento a Elemento -->x = [1 3 4 6] // Vetor x x =! 1. 3. 4. 6.! -->y = [2 4 6 8] // Vetor y y =! 2. 4. 6. 8.! -->x.* y! 2. 12. 24. 48.! -->x * y!--error 10 inconsistent multiplication Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 69 / 83

Vetores - Operador. Operações com Vetores e Matrizes Vetores - Operador../ - Divisão Elemento a Elemento -->x = [1 3 4 6] // Vetor x x =! 1. 3. 4. 6.! -->y = [2 4 6 8] // Vetor y y =! 2. 4. 6. 8.! -->x./ y! 0.5 0.75 0.6666667 0.75! -->x.\ y! 2. 1.3333333 1.5 1.3333333! -->y./ x! 2. 1.3333333 1.5 1.3333333! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 70 / 83

Vetores - Operador. Operações com Vetores e Matrizes Vetores - Operador..^ - Potência Elemento a Elemento -->x = [1 3 4 6] // Vetor x x =! 1. 3. 4. 6.! -->y = [2 4 6 8] // Vetor y y =! 2. 4. 6. 8.! -->x.^ y! 1. 81. 4096. 1679616.! -->y.^ x! 2. 64. 1296. 262144.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 71 / 83

Matrizes - Operador. Operações com Vetores e Matrizes Matrizes - Operador..* - Multiplicação Elemento a Elemento -->A = [ 1 2 3; 4 5 6; 7 8 9] // Definindo a matriz A A =! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! -->A.* A! 1. 4. 9.!! 16. 25. 36.!! 49. 64. 81.! -->A ^ 2! 30. 36. 42.!! 66. 81. 96.!! 102. 126. 150.! -->A * A! 30. 36. 42.!! 66. 81. 96.!! 102. 126. 150.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 72 / 83

Matrizes - Operador. Operações com Vetores e Matrizes Matrizes - Operador../ - Divisão Elemento a Elemento -->A = [ 1 2 3; 4 5 6; 7 8 9] A = // Definindo a matriz A! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! -->A./ A! 1. 1. 1.!! 1. 1. 1.!! 1. 1. 1.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 73 / 83

Matrizes - Operador. Operações com Vetores e Matrizes Matrizes - Operador../ - Divisão Elemento a Elemento -->A = [ 1 2 3; 4 5 6; 7 8 9] A = // Definindo a matriz A! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! -->B = [ 2 2 2; 2 2 2; 2 2 2] // Definindo a matriz B B =! 2. 2. 2.!! 2. 2. 2.!! 2. 2. 2.! -->A./ B // Elementos de A divididos pelos de B! 0.5 1. 1.5!! 2. 2.5 3.!! 3.5 4. 4.5! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 74 / 83

Matrizes - Operador. Operações com Vetores e Matrizes Matrizes - Operador..\ - Divisão Elemento a Elemento -->A = [ 1 2 3; 4 5 6; 7 8 9] A = // Definindo a matriz A! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! -->B = [ 2 2 2; 2 2 2; 2 2 2] // Definindo a matriz B B =! 2. 2. 2.!! 2. 2. 2.!! 2. 2. 2.! -->A.\ B // Elementos de B divididos pelos de A! 2. 1. 0.6666667!! 0.5 0.4 0.3333333!! 0.2857143 0.25 0.2222222! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 75 / 83

Matrizes - Operador. Operações com Vetores e Matrizes Matrizes - Operador..^ - Potência Elemento a Elemento -->A = [ 1 2 3; 4 5 6; 7 8 9] A = // Definindo a matriz A! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! -->B = [ 2 2 2; 2 2 2; 2 2 2] // Definindo a matriz B B =! 2. 2. 2.!! 2. 2. 2.!! 2. 2. 2.! -->A.^ B! 1. 4. 9.!! 16. 25. 36.!! 49. 64. 81.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 76 / 83

Operações com Vetores e Matrizes Produto de Kronecker - Operador.*. Produto de Kronecker - Operador.*. Produto de Kronecker - Definição O produto de Kronecker entre duas matrizes, A R m n e B R p q, a 1,1 a 1,2 a 1,n a 2,1 a 2,2 a 2,n A =...... a m,1 a m,2 a m,n b 1,1 b 1,2 b 1,q b 2,1 b 2,2 b 2,q e B =...... b p,1 b p,2 b p,q é representado por A B R (m p) (n q) e definido por: a 1,1 B a 1,2 B a 1,n B a 2,1 B a 2,2 B a 2,n B A B =...... a m,1 B a m,2 B a m,n B Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 77 / 83

Operações com Vetores e Matrizes Produto de Kronecker - Operador.*. Produto de Kronecker - Operador.*. -->A = [1 2; 3 4] // Matriz A A =! 1. 2.!! 3. 4.! -->B = [1 2 3; 4 5 6] B = // Matriz B! 1. 2. 3.!! 4. 5. 6.! -->A.*. B // Produto de Kronecker usando o operador.*.! 1. 2. 3. 2. 4. 6.!! 4. 5. 6. 8. 10. 12.!! 3. 6. 9. 4. 8. 12.!! 12. 15. 18. 16. 20. 24.! ->kron(a, B) // Produto de Kronecker usando funcao interna! 1. 2. 3. 2. 4. 6.!! 4. 5. 6. 8. 10. 12.!! 3. 6. 9. 4. 8. 12.!! 12. 15. 18. 16. 20. 24.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 78 / 83

Listas Introdução Listas Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 79 / 83

Listas - Definição Listas Listas - Definição Uma lista é uma coleção de objetos não necessariamente do mesmo tipo. Uma lista simples é definida pela função list. Esta função tem a forma geral list(a 1, a 2,...,a n ) onde os a i são os elementos da lista. É importante observar que a indexação de elementos de uma lista, no Scilab, inicia-se por 1. -->L = list(1, w, ones(2,2)) // Uma lista simples com 3 elementos L = w 1. L(1) L(2) L(3)! 1. 1.!! 1. 1.! Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 80 / 83

Listas - Exemplo Listas Listas - Exemplo -->// Transformando o elemento L(2) em uma lista -->L(2) = list( w, rand(2,2)) L = 1. L(1) L(2) w L(2)(1) L(2)(2)! 0.2113249 0.0002211!! 0.7560439 0.3303271! L(3)! 1. 1.!! 1. 1.! --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 81 / 83

Listas Listas - Acesso a Elementos Listas - Acesso a Elementos Acessar o elemento (1,2) do segundo elemento de L(2), -->L(2)(2)(2,1) --> 0.7560439 Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 82 / 83

Listas Tipadas Listas Listas Tipadas -->// Definicao de uma lista tipada -->L = tlist([ Carro ; Cidade ; Valores ],... --> Natal, [2,3]) L = L(1)!Carro!!!!Cidade!!!!Valores! Natal L(2) L(3)! 2. 3.! -->// Acessando elementos -->L( Cidade ) Natal -->L( Valores )! 2. 3.! -->L(1)(3) Valores --> Paulo Motta (DCA-UFRN) Scilab 3.0 2005.1 83 / 83