Introduçao ao Scilab 1. Variáveis a. Inteiras e Reais Digite no console: x = 1, y = 2.5 x+y z=x+y w = z*x + y^2; w t u = %pi variavel = %e^4 //cria duas variaveis (a vírgula separa dois comandos) //apresenta o resultado na tela (variavel ans) //guarda o resultado na variável z //ponto e vírgula para suprimir a resposta //verificar o valor de w //variável inexistente //constante ߨ //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) x=1/10 //imprimir as respostas com x casas decimais 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; y=sin(x)+2; plot(x,y); z=exp(x); plot(x,z,’r’); //cria o vetor x //cria o vetor y de acordo com a função seno //plota x por y (gera gráfico) //cria o vetor z de acordo com a função exponencial //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) y = x^2 – 4; endfunction // função com um argumento e um retorno //a variavel y eh a variavel de retorno 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) func(1) //chama a funcao e guarda a saida em z //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) a = func(x); b= func(y); c = func(func(z)); endfunction //funcao com 3 args. e 3 ret. 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. ݊݁ݏሺݔሻ = ݔ− ݔଷ ݔହ ݔ + − +⋯ 3! 5! 7! 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.