Post on 14-Jan-2016
description
Aula 02
Variáveis, Matrizes, Gráficos
1
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM
Programação de Computadores I – BCC701www.decom.ufop.br/moodle
No circuito abaixo, temos uma fonte de voltagem V=120V, com uma resistência interna Rs=50Ω, suprindo uma carga de resistência RL. Qual é o valor da resistência que resulta na potência máxima fornecida pela fonte para a carga? Qual é a potência fornecida nesse caso?
2
Transferência de carga máxima
Precisamos variar a resistência de carga RL e computar o valor da potência, para a cada valor de RL. A potência fornecida para a resistência de carga é dada pela equação:
PL = I2 RL
onde I é a corrente fornecida para a carga, calculada, conforme a lei de Ohm, como:
I = V/(RS+RL)
3
Transferência de carga máxima
Os valores para a resistência de carga RL devem variar de 1Ω até 100Ω, de 1 em 1Ω.
Como podemos construir uma tabela dos possíveis valores para a resistência RL?
Como podemos computar o valor da potência para a cada valor de RL?
4
Transferência de carga máxima
A unidade básica de dados em Scilab é uma matriz. Uma matriz é uma coleção de valores, organizados
em linhas e colunas, tal como uma tabela.
Exemplos:
a = 1 5 6 2 é uma matriz de dimensão1x4
1 2 b = 3 4 é uma matriz de dimensão 3x2 5 6
5
Matrizes
--> pesos = [ 23.6 44 78.5 ] pesos = 23.6 44. 78.5 --> notas = [ 8, 7, 10 ] notas = 8. 7. 10. --> massa(1) ans = 20.6 -->notas(3) ans = 10.
6
Matrizes em Scilab cria uma matriz 1x3, contendo os valores 23.6 44 e 78.5, e
atribui essa matriz à variável de nome massa
elementos em uma mesma linha da matriz podem ser
escritos separados por espaços em branco ou por
vírgulas.
elementos individuais de uma matriz são identificados pelo nome da matriz e pelo índice da linha e da coluna
em que ele ocorre na matriz
--> a = [1,3,5,7; 2,4,6,8 ] a = 1. 3. 5. 7. 2. 4. 6. 8. --> a(1,3) ans = 5. --> a(2,1) ans = 2.
7
Matrizes em Scilab cria uma matriz 2x4 e atribui essa
matriz à variável a
as linhas da matriz são separadas por ;
elementos individuais de uma matriz são identificados pelo nome da matriz e pelo índice da linha e da coluna
em que ele ocorre na matriz
--> b = [10;30;50+4] a = 10. 30. 54.--> a(2,1) = b(3,1)+10 a = 1. 3. 5. 7. 64. 4. 6. 8.
8
Matrizes em Scilabcria uma matriz 3x1 e atribui
essa matriz à variável b
podemos atribuir valores a elementos individuais de
uma matriz
um elemento de uma matriz pode ser uma expressão
Seja M a matriz criada pelo seguinte comando:
--> M = [1,3;2,4;5,7]
1. Qual é a dimensão da matriz M?2. Qual seria o resultado da execução de da
seguinte sequência de comandos Scilab?--> x = M(2,1)*3--> y = M(1,3)--> M(2,1) = M(1,2)+10
9
Exercício
3x2
x = 6 error 21 – Invalid index
M = 1. 3. 13. 4. 5. 7.
É fácil criar uma matriz listando explicitamente seus elementos:
--> M = [1,3;2,4;5,7]
Mas, e se a matriz contiver centenas ou milhares de elementos?
--> X = [1:2:10] X = 1. 3. 5. 7. 9.
10
Mais comandos para criar Matrizes
valor inicial valor final
incremento
Também podemos usar a notação <valorInicial>:<incremento>:<valorFinal>para criar matrizes de mais de uma
dimensão:
--> M = [1:1:3; 10:10:30; 2:2:6]M = 1. 2. 3. 10. 20. 30. 2. 4. 6.
11
Mais comandos para criar Matrizes
--> A = [1:4]A = 1. 2. 3. 4.
--> B = [1:4]*5 B = 5. 10. 15. 20.
12
Mais comandos para criar Matrizesvalor inicial valor final
se o incremento for omitido, ele é considerado igual a 1
multiplicação de matrizes: o valor 5 é visto como uma matriz 1x1
--> F = [1:3]F = 1. 2. 3.
--> G = [1:3]’G = 1. 2. 3.
13
Mais comandos para criar Matrizes
operador de transposição
de matriz
--> H = [F F]H = 1. 2. 3. 1. 2. 3.
--> I = [G G]I = 1. 1. 2. 2. 3. 3.
matrizes podem ser criadas a
partir de outras matrizes
O valor tensão na fonte é 120V e o valor da resistência interna Rs é 50 Ω.
Os valores para a resistência de carga RL devem variar de 1Ω até 100Ω, de 1 em 1Ω.
Como podemos construir uma tabela dos possíveis valores para a resistência RL?
14
Voltando ao nosso problema:Transferência de carga máxima
V = 120 // voltagem da fonte (Volts)RS = 50 // resistência interna (Ohms)RL = [1:100] // resistência de carga(Ohms)
Agora queremos calcular o valor da corrente para cada possível valor da resistência de carga RL, sendo o valor da corrente dado por:
I = V/(RS+RL)
Como podemos fazer isso?
15
Voltando ao nosso problema:Transferência de carga máxima
Todos os operadores aritméticos se aplicam também sobre matrizes:
A + B A - B
C * D C / D
Veremos mais sobre essas operações futuramente
16
Operações sobre Matrizes
soma/subtração de matrizes A e B devem ser de mesma dimensão
produto/divisão de matrizes:C e D devem ter dimensões (nxm) e (mxp)
o resultado é uma matriz de dimensão (nxp)
No nosso problema, o que queremos é aplicar uma determinada operação a todos os elementos da matriz RL, obtendo uma matriz dos resultados correspondentes:
I = V/(RS+RL)
Como podemos fazer isso?
17
Voltando ao nosso problema:Transferência de carga máxima
Ia = V ./ (Rs + Rl) // corrente (Amperes)soma o valor de RS a cada elemento de RL
divide o valor de V por cada elemento da matriz resultante
Agora queremos calcular a potência na resistência de carga RL para cada possível valor da corrente e da resistência:
P = I2 RL
Como podemos calcular a matriz de potências?18
Voltando ao nosso problema:Transferência de carga máxima
Ia = V ./ (Rs + Rl) // corrente (Amperes)soma o valor de RS a cada elemento de RL
divide o valor de V por cada elemento da matriz resultante
o resultado é uma matriz de mesma dimensão que
RL
19
Voltando ao nosso problema:Transferência de carga máxima
P = (Ia .^ 2) .* Rl) // potência (Watts)multiplica cada elemento da matriz
resultante pelo elemento correspondente na matriz RL
eleva ao quadrado cada elemento da matriz I
Para encontrar o valor da potência máxima, vamos plotar o gráfico Potência X Resistência de carga
20
Voltando ao nosso problema:Transferência de carga máxima
V = 120 // voltagem da fonte (Volts)RS = 50 // resistência interna (Ohms)RL = [1:100] // resistência de carga(Ohms)Ia = V ./ (Rs .+ Rl) // corrente (Amperes)P = (Ia .^ 2) .* Rl) // potência (Watts)
21
Voltando ao nosso problema:Transferência de carga máxima
// gráfico da potência versus resistênciaplot (Rl,P) // resistência interna (Ohms)title(“Potência versus Resistência)xlabel(“Resistência de carga (ohms)”)ylabel(“Potência (watts)”)
22
Voltando ao nosso problema:Transferência de carga máxima
Podemos obter o valor da resistência de carga para a qual a potência é máxima inspecionando o gráfico de Potência versus Resistência de carga.
Mas podemos também usar funções pre-definidas em Scilab para obter este valor:
23
Voltando ao nosso problema:Transferência de carga máxima
[Pmax,i] = max(P) // potência máxima Rmax = Rl(i)
a função max,aplicada a uma matriz, retorna dois valores:
1) o valor máximo contido na matriz2) o índice da posição em que esse
valor máximo ocorre na matriz
o valor da resistência para a qual a potência é máxima pode ser obtida na posição
correspondente na matriz RL
Estude o capítulo 2 do livro: Stephen J. Chapman: Programação em MathLab para Engenheiros
A seção 2.14 contém um resumo do capítulo e uma relação de operadores e funções pre-definidos em Scilab
Procure fazer os exercícios desse capítulo
24
Importante