• Nenhum resultado encontrado

Introdução ao Scilab

N/A
N/A
Protected

Academic year: 2021

Share "Introdução ao Scilab"

Copied!
45
0
0

Texto

(1)

Introdução ao Scilab

Prof. Santos Alberto Enriquez Remigio

Faculdade de Matemática-Universidade Federal de Uberlândia

(2)

Tópicos

Scilab

Operações básicas de calculadora no Scilab Definição de polinômios no Scilab

Definição de vetores e matrizes no Scilab Editor SciNotes do Scilab

Comandos de programação Funções

(3)

Scilab

1. Scilab é um ambiente de programação numérica bastante flexível I Gratuito

I É um ambiente poderoso para geração de gráficos bi-dimensionais e tri-dimensionais, inclusive com animação

I Implementa diversas funções para manipulação de matrizes.

I Permite trabalhar com polinômios, sistemas linares e grafos I Permite o acesso a rotinas escritas nas linguagens Fortran e C

(4)
(5)
(6)
(7)
(8)

Operações básicas com Scilab

1. Declarando variávies reais ou complexas (=): a = 2; b = -1. 2. Operadores com números:

I Soma (+), subtração (-)

I Mutiplicação (*)

I Divisão: / (slash). b/a = b ∗ (a−1)

I Divisão: \ (backslash). b\a= (b−1)a

I Radiciação (sqrt()) I Potenciação (^)

3. Variáveis especiais: I π (%pi), e (%e), i (%i)

(9)

Exemplos práticos. Faça os seguintes cálculos na

consola do Scilab

1. Calcule 10π 2. e2 3. O resíduo de 48/11 4. −3 10+ 3 −5 5. √2 +√32 − 4.0234.023

6. Dados a = 2, b = −3 e c = 5. Calcule as expressões: 1) c + c − ab

a − b − c 2) a −b

3− a − c

ac − b 7. Calcule o valor de: √2πe

(10)

Polinômios no Scilab

Definição dos polinômios. Duas maneiras:

1. Passando os coeficientes do polinômio: NomeVarPolin= poly([a0a1a2 an], ’NomeVarIndepend’, ’coef’);

2. Passando as raízes do polinômio: NomeVarPolin = poly([r1r2 rn],’NomeVarIndepend’)

(11)

Operações:

I Soma e diferença: + e

-I Multiplicação e divisão comum: * e /

I Divisão à esquerda: \

Entenda-se por p\q a operação p−1q

I Potenciação: ^

Valor numérico de um polinômio: horner(NomeVarPolin, valorVarIndepen)

(12)

Exemplos práticos

1) Defina o seguinte polinômio no Scilab: P(s) = s3+ s2− s + 2

2) Defina o seguinte polinômio no Scilab, sabendo que possui unicamente as seguintes raízes: x1= 1, x2= 2 e x3= 3.

(13)

Vetores

Para definir um vetor criamos um nome e lhe asignamos entre colchetes os elementos do vetor.

NomeVetor = [ elementos]

Para vetor linha os elementos do vetor são separados pelo símbolo “,” ou por um espaço vazio e, para vetor coluna os elementos do vetor são separados pelo símbolo “;”

Exemplos:

I Vetor coluna de 3 elementos: v = [ 1; 3; -1];

(14)

Vetores

Operações básicas com vetores

1. Operadores:

I Soma e subtração: + e

-I Multiplicação por escalar: *

2. Produto escalar de dois vetores coluna u e v : ’* . Aplica-se assim: u0∗ v

(15)

Geração de vetores

Vamos usar o operador : e a função predefinida linspace para gerar vetores:

v=a:b retorna uma sequência de números começando em a e terminando em b com espaçamento 1 (a e b inteiros) v=a:h:b retorna uma sequência de números começando em a e

terminando em b com tamanho de passo h v=linspace(a,b) retorna uma sequência de números com 100 pontos

igualmente espaçados entre a e b

v=linspace(a,b,n) retorna uma sequência com n pontos igualmente espaçados entre a e b

(16)

Exemplos práticos

. Defina os seguintes vetores no Scilab: u = (2, 3, 4)

v = (−1, 0, 1 w = (−1, 0, 1)

(17)

Exercício prático

Veja o que acontece com os seguintes comandos no Scilab: 1) z= linspace(0,1,11)

2) v = -6:3:9

3) w = 5:12

(18)

Matrizes

Para definir uma matriz criamos um nome e lhe asignamos entre colchetes os elementos.

NomeMatriz = [ elementos]

Usamos o símbolo “,” ou espaço vazio para separar os

elementos de uma linha e o símbolo “;” para separar as linhas

da matriz.

Exemplo matriz 3x4:

a = [ 1 4 -1 0; 2 3 4 5; 1, 2, 8, 9]

Operações

I soma e subtração: + e

-I Multiplicação por um escalar: *

(19)

Definição de matrizes especiais de tamanho nxm

Matriz com elementos igual a um

:

em que todos os elementos são iguais a um: a = ones(n,m)

Matriz nula

: a = zeros(n,m)

(20)

Operações básicas com matrizes quadradas

1. Operações

I soma e subtração: + e -I Multiplicação por um escalar: *

I Potenciação: ^

I Transposta: ’

I Determinante: det(NomeMatriz)

I Inversa: inv(NomeMatriz) 2. Definição de matrizes especiais

I Matriz identidade de tamanho n: a = eye(n,n)

(21)

Multiplicação de matrizes quadradas

Operadores

I Multiplicação própria de matrizes: * Aplicação: A*B, onde A ∈ M(n, m) e B ∈ M(m, p)

I Multiplicação e divisão elemento a elemento: .* e ./ Aplicação: A.*B (ou A./B), sendo A e B∈ M(n, m)

I Potenciação de cada elemento da matriz: .^ Aplicação: A.^p, onde A ∈ M(n.m) e p ∈ N

I Divisão à esquerda: Usa-se para expressar o produto A−1b. Nesse

caso, usa-se o operador \ I A\B significa inv(A) * B

I Divisão a esquerda elemento a elemento A .\ B 6= inv(A) .* B

(22)

Exemplos práticos

1. Defina uma matriz identidade de 5x5 no Scilab.

2. Inicializar todos os elementos de uma matriz A igual a zero. 3. Calcular a potência An, onde:

A =     0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0     para n = 1, 2, 3 , 4, 5, 6.

(23)

Tamanho de variáveis

size(A) Retorna o número de linhas e colunas da matriz A length(x) Retorna o número de elementos do vetor x

(24)

Editor SciNotes do Scilab

Objetivos do editor

1. Escrever comandos a serem executados no Scilab 2. Depurar algoritmos

Extensão para os arquivos editados no Scipad. Alguns destes, são: 1. .sce (Arquivo geral de comandos)

(25)
(26)

Comandos de leitura e impressão de dados numéricos

I

input

: Prompt para entrada de dados. Exemplo

I Exemplo. n = input(“ ingresse o valor do número de iterações “);

I

printf

: Emulador da função da linguagem C printf I Exemplo. printf(“ Valor de n = %d \n”, n);

I

//

: Marca o início de um comentário. As barras, tanto quanto o restante dos caracteres até o fim das linhas não são interpretados.

I Exemplo. // Duas barras em Scilab me permitiu colocar este texto I

clear

: Cancela variáveis declaradas.

I

clc

: Limpa janela de comandos

I

clf

: Limpa ou reajusta a (janela da) figura gráfica corrente para valores padrões;

I

scf

(n): Abre janela de apresentação de figura gráfica com identificador de valor n.

(27)

Exemplos práticos

Abrir um arquivo no editor de comandos e escrever: // Meu primeiro programa

// ************************ // Autor:

// Data:

// Objetivo: Mostrar o uso de alguns comandos do Scilab no editor de comandos

x=1, y=2

(28)

Funções predefinidas no Scilab: básicas

abs(x) retorna o valor absoluto de x: |x|

sign(x) retorna o sinal de x, 1 se x>0, -1 se x<0, e 0 se x=0 sqrt(x) retorna a raiz quadrada de x

exp(x) retorna a função exponencial de x: ex

log(x) retorna o logaritmo natural de x: ln(x) log10(x) retorna o logaritmo de x na base 10: log10x

(29)

Funções predefinidas no Scilab: trigonométricas

sin(x) retorna o sen(x), para x em radianos sind(x) retorna o sen(x), para x em graus sexagesimais asin(x) retorna o arcoseno(x) em radianos

cos(x) retorna o cos(x), para x em radianes cosd(x) retorna o cos(x), para x em graus sexagesimais acos(x) retorna o arcocos(x) em radianos

(30)

Funções predefinidas no Scilab: arredondamento

round(x) retorna o inteiro mais perto de x

fix(x) retorna o inteiro mais perto de x em direção a zero: arredonda acima para números negativos arredonda abaixo para números positivos floor(x) retorna o maior inteiro abaixo de x

(31)

Definição de função usando o comando

deff

deff (’[y1,y2,...,yn] =nome_funcao(x1,x2,...,xm)’,’y1=regra1(x1,x2,...,xm), y2=regra2(x1,x2,...,xm),...,yn=regran(x1,x2,...xm)’)

Example

Definir a função y = x2 no Scilab e calcular o valor numérico dessa

função para x=2.

−− > deff(’vary=funcaoQuadraticaSimples(varx)’,vary=varx^2’); −− > y = funcaoQuadraticaSimples(2) \\

y = 4.

(32)

Definição de função usando o comando

function

function [y1, y2, ....,yn] =nome_funcao(x1, x2,...,xn)

instrucao_1 instrucao_2 .. . instrucao_n endfunction

Example

Definir a função y = x2 no Scilab e calcular o valor númerico dessa

(33)

Comandos de programação para iterações

Comandos para iterações

1. O loop for

for variavel = vetor_linha instrucao_1 instrucao_2 .. . instrucao_n end 2. O loop while while condicao instrucao_1 instrucao_2 .. . instrucao_n end

(34)

Exemplos práticos

(35)

Comandos de programação para condicionais

Comandos condicionais 1. Comando if-then-else if condicao then sequencia_de_instrucoes_1 else sequencia_de_instrucoes_2 end 2. Comando select-case select variavel_de_teste case expressao_1 sequencia_de_instrucoes_1 case expressao_2 sequencia_de_instrucoes_2 .. . ... ... case expressao_n sequencia_de_instrucoes_n else sequencia_de_instrucoes_n+1 end

(36)

Operadores de comparação

Maior que a>b Maior e igual que a>=b

Menor que a<b Menor ou igual que a<=b

Igual que a==b

E a & b

ou a | b

(37)
(38)

Lembrando o conceito do gráfico de uma função

1. Seja f : A ⊆ R → R uma função de uma variável, seu gráfico é: Graf (f ) = {(x, y )/x ∈ Domf = A y = f (x )} ∈ R2 2. E g : A ⊆ R2→ R uma função de duas variáveis, seu gráfico é:

Graf (g ) = {(x , y , z)/(x , y ) ∈ Domf = B e z = g (x, y )} ∈ R3 3. Se o domínio da função é finito, então o gráfico da função é um

(39)

Observação

1. Se o domínio de uma função f de R em R é um intervalo, isto é, f : [a, b] → R, então o domínio da função f é um conjunto infinito. 2. O computador não pode representar todos os números (conjunto

infinito) do intervalo [a, b].

Portanto, o esboço do gráfico da função f no computador exige a escolha de um subconjunto de pontos do conjunto Graf (f ),isto é, conjunto da forma:

(40)

Um exemplo de escolha de pontos do Graf (f )

Problema. Esboçar o gráfico da função f : [a, b] → R.

1. Escolha de pontos xi. Supondo-se que se deseja escolher pontos igualmente espaçados em [a,b], pode-se seguir o seguinte roteiro:

1.1 Defina dx = (b − a)/n, com n sendo o número de subintervalos

1.2 Defina o vetor de abscisas x no Scilab por: x = [a : dx : b]

1.3 Calcule o vetor y associado ao vetor x por: y = f (x)

2. Aplique o comando plot2d do scilab aos vetores x e y , como se segue: plot2d(x,y)

(41)
(42)
(43)

Exemplo prático 1: Colocando grid

-8 -6 -4 -2 0 2 4 6 -3 -2 -1 0 1 2 3 Figura:

(44)

Exemplo prático 2: Colocando grid e eixos

-8 -6 -4 -2 0 2 4 6 -3 -2 -1 0 1 2 3

(45)

Exemplo prático 3: Acrescentando legenda

y= 2x-1 -8 -6 -4 -2 0 2 4 6 -3 -2 -1 0 1 2 3

Referências

Documentos relacionados

4689-3 Comércio atacadista especializado de outros produtos intermediários não especificados anteriormente - fios e fibras têxteis beneficiadas, produtos de

O vídeo abordou os seguintes questionamentos: qual a implicância do cuidado familiar à criança e adolescente no contexto a pandemia, como lidar com essa situação, o que

Pág 17 de 22 era estratégico para a sociedade poderia ser resumido em apenas na expressão &#34;qualidade de vida&#34;; que aquilo que as cidades e as regiões hoje procuravam

Ainda que se amplie tal quadro referencial, por meio de uma inflação de princípios constitucionais (direitos fundamentais), o que, no fundo, só serve para banalizar o valor

Contrapondo-se à lógica do modo de produção capitalista, diversas comunidades possuem outras determinações em sua repro- dução social material e imaterial: posse e controle,

Mais ainda, disponibiliza um conjunto de recomendações destinadas aos governos e às entidades doadoras, juntamente com entidades parceiras, para assegurar que todas as crianças

Dessa forma, buscou-se, nesta pesquisa, responder à seguinte questão: Qual empresa do ramo de distribuição de medicamento, que possui suas demonstrações financeiras publicadas no

Cadeiras Diretor com Pranchetas Café e Água Período Matutino (8h30 às 12h30) Período Vespertino (13h00 às 18h00) Período Integral (8h30 às 18h00) Ar Condicionado e Janelas