Buscar

LAB1-Introducao ao Scilab

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introduçao ao Scilab 
1. Variáveis 
 
a. Inteiras e Reais 
Digite no console: 
 
x = 1, y = 2.5 //cria duas variaveis (a vírgula separa dois comandos) 
x + y //apresenta o resultado na tela (variavel ans) 
z = x + y //guarda o resultado na variável z 
w = z*x + y^2; //ponto e vírgula para suprimir a resposta 
w //verificar o valor de w 
t //variável inexistente 
u = %pi //constante 
variavel = %e^4 //constante: número de Neper eu Euler 
 
b. Vetores e Matrizes 
Digite no console 
 
 clear //limpar todas as variaveis já existentes 
x = [1 2 3] //cria um vetor linha 
y = [4; 5; 6] //cria um vetor coluna 
z = x + y //tenta adicionar vetores de tamanhos diferentes: erro 
z = x + y’ //adicina x com y transposto (y’ significa y transposto) 
w = x.*y’ //operador . (operação ponto a ponto) 
A = [1 2 3; 4 5 6; 7 8 9] //matriz 3 por 3 
B = eye(3,3) //matriz identidade 3x3 
C = A*B 
v = x*A //podemos multiplicar vetor por matriz 
x = 1:10 //cria vetor que inicia em 1 e vai até 10 de 1 em 1 
x = 0:0.1:1 //cria vetor que inicia em 0 e vai até 1 de 0.1 em 0.1 
x(1)+x(5) //acessando elementos do vetor 
A(2,3) + B(1,1) //acessando elementos da matriz 
x = [‘a’ ‘b’ ‘2’] //vetor de strings 
y= [‘c’ ‘d’ ‘3’] 
x + y //a soma de strings na verdade é uma concatenação 
 
c. Precisão e Erros de arredondamento 
Digite no console 
format(25) //imprimir as respostas com x casas decimais 
x=1/10 
 
2. Scripts 
 
Abra o editor de texto do scilab (clicando no icone correspondente ou executando o 
comando “editor” no console) e digite: 
 
x=0.1:0.1:2.1415; //cria o vetor x 
y=sin(x)+2; //cria o vetor y de acordo com a função seno 
plot(x,y); //plota x por y (gera gráfico) 
z=exp(x); //cria o vetor z de acordo com a função exponencial 
plot(x,z,’r’); //plota x por z em vermelho( r- red) 
 
Para executar o scrip, após salvar-lo com o nome de teste.sci pressionar F5 (ou Ctrl + e) 
dentro do editor, ou então, digitar no console: 
 exec(‘<caminho para o aquivo>\teste.sci’) 
Também podemos modificar o diretório corrente do scilab para ser o mesmo no qual 
salvamos o scrip, com o botão ‘alterar diretório atual’, ou com o comando: 
 cd ‘<caminho para o aquivo>’ 
Em seguida para executar o script podemos digitar apenas: 
 exec(‘teste.sci’) 
Note que após executar o script, a variável x, que tínhamos definido como *‘a’ ‘b’ ‘2’+ no final 
do item 1.b agora vale o valor definido no script. O script sobreescreve as variáveis do ambiente, 
assim como pode utilizar variáveis já definidas neste. 
 
3. Funções 
 
Abra um novo arquivo no editor de texto do scilab e digite: 
 
function y = func(x) // função com um argumento e um retorno 
 y = x^2 – 4; //a variavel y eh a variavel de retorno 
endfunction 
 
Em seguida, após salvar a função com o nome func.sci, carregar a função na memória do 
scilab pressione F5 dentro do editor (ou Ctrl + l) ou digite no console: 
 
exec('func.sci') 
 
Para chamar a função, digite no console: 
 w = 1; 
 z = func(w) //chama a funcao e guarda a saida em z 
 func(1) //apresenta o resultado na tela e guarda em ans 
 
Perceba que, apesar da variável de retorno da função ser “y”, temos que chamar a função 
pelo seu nome, ou seja,” func”, e podemos guardar o retorno desta em qualquer variável. No 
console, a variável “y” não tem qualquer relação com a funcao em questão. 
 
Abra um novo arquivo no editor de texto do scilab e digite: 
 
function [a,b,c] = func3args(x,y,z) //funcao com 3 args. e 3 ret. 
 a = func(x); 
 b= func(y); 
 c = func(func(z)); 
endfunction 
 
Em seguida, após salvar a função e carregá-la na memória do scilab (F5), podemos 
executá-la: 
 
[j,k,l] = func3args(1,2,3) //chama a funcao e guarda a saida nas variaveis 
//j, k e l 
Funções não podem utilizar variávies definidas no ambiente, apenas as variáveis que 
foram fonecidas como entrada para a função, e não modificam as variáveis do ambiente a não ser 
através do retorno. 
Também devemos nos lembrar de, após realizar qualquer modificação em uma função, 
carrega-la novamente no embiente (Ctrl + l). Se não carregarmos a nova versão da função, as 
modificações feitas não terão efeito. Ao recarregar uma função, o console irá apresentar a 
seguinte mensagem: 
 
Aviso: redefinindo a função: <nome da funcao> 
 
É possível declarar uma função e um scrip em um único arquivo de texto. Muito alunos 
gostam de realizar este procedimento de forma que chamada da função fique salva no arquivo. 
Neste caso, ao se pressionar Ctrl + l a função será carregada e o scrip executado, como mostrado 
no exemplo abaixo. 
 //definição da função 
function y = func(x) // função com um argumento e um retorno 
 y = x^2 – 4; //a variavel y eh a variavel de retorno 
endfunction 
 //script que chama a funcao 
 z = func(w) //chama a funcao e guarda a saida em z 
 
4. Estruturas de Controle 
 
Digite os seguintes códigos em scripts, execute-os e observe a saída: 
a. //Comando If 
 y = 1, x = 2; 
 if x == y then 
 disp(‘o valor de x é igual ao valor de y’); //imprime mensagem na tela 
 else 
 disp(‘o valor de x é diferente do valor de y’); 
end 
 
b. //Comando while 
 cont = 0; 
 while cont ~= 5 //enquanto cont diferente de 5 
 disp(‘iteracao numero ’ + string(cont)); //converte a variável cont para 
 // string e concatena com o resto 
 // antes de imprimir 
 cont = cont + 1; 
end 
 
 
 
c. //Comando for 
 for i = 1:10 
 if modulo(i,2) == 0 
 disp(‘o numero ’ + string(i) + ‘ eh par’); 
 else 
 disp(‘o numero ’ + string(i) + ‘ eh impar’); 
 end 
end 
x = [2 -4 -19 3 -3 34] 
for i=x 
 y = abs(i); 
 disp(‘o valor absoluto do numero ‘ + string(i) + ‘ vale ‘ + string(y)) 
end 
 
 
5. Ajuda 
 
Para abrir a tela de ajuda, pressione a tecla F1 e digite o topico desejado na busca ou digite 
diretamente no console: 
 
help <nome da funcao> 
 
6. Tarefas 
 
1) Escreva uma função que calcule o seno de um angulo utilizando a expansão em série 
de Taylor. O usuário deve passar como argumento o ângulo e o número de termos da 
série de Taylor a serem utilizados. A função deve retornar o valor do seno calculado, o 
valor do seno dado pela função sin(x) que já existe no scilab, e o erro relativo 
cometido no seu calculo quando comparado com o valor dado pela função do scilab. 
 
 ( ) 
 
 
 
 
 
 
 
 
 
 
2) Crie uma função que chama a sua função seno escrita no exercício anterior, para um 
determinado ângulo mas para vários números de termos da série de Taylor diferentes 
(isto é, variando apenas o segundo argumento). Armazene o valor calculado e o erro 
relativo em um vetor, e em seguida plote dois gráficos: um que mostra o valor real do 
seno e o valor do seno calculado para cada números de termos da série de Taylor; 
outro que mostra a evolução do erro relativo vs números de termos da série de Taylor. 
 
 
7. Funções Nativas para Polinômios 
 
a. Poly: Função que cria polinômios 
Chamdas: 
poly(*r0 r1 r2 ...+,’x’); //cria polinômio com raizes ri 
poly([a0 a1 a2 ...+,’x’, ‘coef’); //cria polinômio a0 + a1x + a2x^2 ... 
Ex: Digite no console 
 y = poly(*1 2 3+,’x’) 
 z = poly(*1 2 3+,’s’,’coef’) 
 
b. Horner: Avalia valor de um polinômio para um valor da variável 
Chamada: 
horner(y,x) //avalia o polinômio y no ponto x 
Ex: Digite no console 
 y = poly(*1 2 3+,’x’) 
 resp = horner(y,1) 
 
c. roots: Calcula as raízes (reais e imaginárias) de um polinômio 
Chamada: 
 roots(y) //calcula raizes do polinômio y 
roots([… a2 a1 a0+) //calcula raízes do polinômio a0 + a1x + a2x^2 ... 
Ex: Digite no console 
 roots([1 2 0]) //raízes do polinômio 0 + 2x + x^2roots(poly(*1 2 3+,’x’))

Continue navegando