Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Estadual de Campinas Faculdade de Ciências Aplicadas Constantes >>a=1 //real constant a = 1. >> b = 2.3343443E-5 //2,3x10^5 b = 2.3343e-005 Booleanos >>1==1 //boolean ans = T String >>c = 'string' //character string c = string Polinômios >>z=poly(0,'z') // polynomial with variable 'z' and with one root at zero z = z >>p=1+3*z+4.5*z^2 //polynomial p = 1 + 3z + 4.5z² >>r=z/p //rational r = z ------------- 1 + 3z + 4.5z² Matrizes A=[2 2 3 >> 0 0 0.7853982 >> 5 9 -1] //3 x 3 constant matrix A = 2. 2. 3. 0. 0. 0.7853982 5. 9. - 1. >> [1 2 3; 4 5 6] ans = 1 2 3 4 5 6 -->s = [3:1.5:7] //Vetor que vai de 3 a 7, com o passo de 1,5 por componente. s = 3. 4.5 6. -->r = [ 1:3; 4:6; 7:9] // Usando a notação vetorial para criar as linhas. r = Quando não descrito o passo, o Scilab assume como 1. 1. 2. 3. 4. 5. 6. 7. 8. 9. Pré-definidos -->%pi //π %pi = 3.1415927 -->1+2*%i // Número imaginário ans = 1. + 2.i -->exp(1) //Número de Euler ans = 2.7182818 -->%inf //Infinito %inf = Inf Operação Matemática Símbolo Correspondente Adição + Subtração - Multiplicação (Funciona para matrizes) * Divisão / Exponenciação ^ Transposição (Matrizes) ‘ Exponenciação Multiplicação/Divisão Adição /Subtração Ordem de realização das operações (sem parênteses) Função Descrição abs(x) Valor absoluto de x log(x) Logaritmo neperiano de x log10(x) Logaritmo de x na base 10 exp(x) Exponencial de x sqrt(x) Raiz quadrada de x sin(x) Função seno dos valores de x (RAD) cos(x) Função cosseno dos valores de x (RAD) tan(x) Função tangente dos valores de x (RAD) inv(x) Matriz inversa de x real(z) Parte real do número complexo z imag(z) Parte imaginária do número complexo z Funções Básicas Função Descrição v+w adição v-w subtração v.*w multiplica cada elemento de v pelo correspondente de w v./w divide cada elemento de v pelo correspondente de w v.^w cada elemento de v está elevado ao correspondente de w v*w’ calcula o produto escalar de v vezes w A\B divisão à esquerda INV(A)*B A/B divisão à direita Funções para vetores e matrizes Função rand -->rand() //Número aleatório entre 0 e 1 ans = 0.2855364 -->rand(2,2) //Matriz 2x2 com aleatórios ans = 0.8607515 0.5257061 0.8494102 0.9931210 Função deff //Definindo a função myplus, que tem como argumento ‘y’ e ‘z’, retorna o valor ‘x’ e realiza a seguinte operação ‘y+z’. -->deff('[x]=myplus(y,z)','x=y+z') -->myplus(5,3) ans = 8. Funções úteis Função Descrição clf Limpa janela gráfica clear Limpa todas as variáveis clc Limpa a linha do console pause Interrompe as funções sendo executadas resume Retorna ou cancela a execussão das funções Função for -->for j= 4:-1:1 //Laço, no qual a variável --> disp(j); contadora inicia em 4 e -- >end termina em 1. O passo é encontrado entre os ‘:’ e 4. nesse caso é -1. 3. 2. 1. Definindo Funções // Criar uma função permite fazer um grande número de operações com os argumentos de entrada. // No exemplo a função retorna o vetor [x,y]. O nome da função é ‘myfct’ e tem 2 argumentos de entrada. As operações realizadas são as seguintes. -->function [x, y]=myfct(a, b) --> x=a+b --> y=a-b -->endfunction -->[x,y]=myfct(3,2) [x,y] ans = 5. 1. SciNotes http://cameraweb.ccuec.unicamp.br/video/ W1YSSK9SHGSO/ Ordem de pensamento Dada uma certa função: Definir um incremento tanto na parte real quanto na imaginária; Aplicar o método de Newton, para descobrir a convergência; Testar para qual das raízes da função o método convergia; Determinar que o ponto fosse de determinada cor. Definindo a função exemplo: deff('[y]=f(z)', 'y=z^(3) -1'); //Função deff('[y]=df(z)','y=3*z^(2)'); //Derivada p = poly({-1, 0, 0, 1},"x", ["coeff"]) //Definindo a função de p = outra maneira - 1 + x³ r = roots(p) //Raízes da função r = - 0.5 + 0.8660254i - 0.5 - 0.8660254i 1. Definindo um incremento e erro para a função de Newton k=100; // Vamos utilizar uma matriz 100 x 100 Para armazenar os pontos. e=0.25; // O erro para o método será de 0,25. Definindo a função de Newton function [X]=newton(f, x0, E, Df) deff("y=MN(x)","y=x-((f(x))./(Df(x)+10E-10))"); Xv = x0; i = 0; Xn = MN(Xv); while max(abs(f(Xn)),abs(Xv-Xn))>E & i<=50 Xv = Xn; Xn = MN(Xv); i = i+1; end X = Xn; endfunction Selecionando as cores para as raízes [h,w] = size(r); //h é o número de elementos do vetor r (raízes) for i = 1:h c(i)=getcolor(); // Função para escolher cor. end Preenchendo a matriz for dx = 1:k for dy = 1:k n = newton(f,(dx-k/2)+(dy-k/2)*%i,10E-2, df); for q=1:h if (real(r(q)-e)<real(n) & real(n)<real(r(q)+e) & imag(r(q)-e*%i)<imag(n) & imag(n)<imag(r(q)+e*%i)) then A(dx,dy) = c(q); end end end end Matplot(A); Prof.° Dr. Fabiano Fernandes Bargos fabiano.bargos@fca.unicamp.br PAD Lucas Constantino Delago luccondel@live.com
Compartilhar