segunda-feira, 14 de dezembro de 2015

Computação Científica - Aula de 14/12

Senhores Alunos:


Baixem aqui o material de nossa próxima aula que trata do tema "Resolução de sistemas de equações lineares por métodos diretos e iterativos Métodos iterativos, sistemas não lineares".

Até breve

quarta-feira, 9 de dezembro de 2015

Programação de Computadores I - Aulas de 10/12 e 4/02/2016

Senhores alunos:


Encontram-se no link abaixo, as notas de nossas próximas aulas.

Subprogramas e ponteiros.

Não esqueçam que a nossa prova de recuperação será dia 17/12.

Até amanhã!

quinta-feira, 3 de dezembro de 2015

Computação Científica - Aula de 7/12

Senhores Alunos:

Baixem aqui o material de nossa próxima aula que trata do tema "Resolução de sistemas de equações lineares por métodos iterativos: método de Gauss-Seidel".

Bom final de semana!

quarta-feira, 2 de dezembro de 2015

Programação de Computadores I - Segunda Tarefa

Senhores Alunos:

As especificações da segunda tarefa podem ser lidas aqui.

Entrega:
  • Por correio eletrônico até 18/11/2015. Será fornecido uma confirmação de entrega.
  • Se não for recebida a confirmação de entrega, possivelmente o e-mail foi devolvido.
Até amanhã

Programação de Computadores I - Aula de 03/12

Senhores alunos:


Nos links abaixo, disponibilizam-se o material da aula de amanhã  uma lista de exercício sobre vetores e matrizes

Dados Compostos - Parte II - Registros e Uniões.

Vetores & Matrizes.

Até amanhã.

domingo, 29 de novembro de 2015

Introdução a Programação C - Aula de 30/11

Senhores alunos:


Segue o link para acessar o material da nossa aula de hoje:
  • Classes de Armazenamento;
  • O Pré-processador C e as macros.

Até amanhã!

quinta-feira, 26 de novembro de 2015

Computação Científica - Aula de 30/11

Senhores alunos:


Baixem aqui o material da nossa próxima aula que trata do tema "Matriz inversa e número de condição".
Em função de minha participação  em uma banca de concurso público nesse dia, excepcionalmente trabalharemos com um estudo dirigido.
Vocês resolveram em aula os exercícios 8.1 a 8.5, sendo que deixarei no dia um material de apoio para a realização das atividades.
A pergunta feita em aula de "porque utilizar a Fatoração LU" é respondida no início do material.

Boa fim de semana!

quarta-feira, 25 de novembro de 2015

Lista de exercícios sobre transitórios de segunda ordem

Senhores Alunos:



Disponibilizo, a lista de exercícios para preparação para a avaliação dos transitórios de segunda ordem. Apenas  o primeiro exercício não foi selecionado do livro texto.

A propósito, no primeiro exercício, o primeiro gráfico representa a corrente no indutor em um circuito RL série, medida em ampères. O segundo gráfico representa a tensão no capacitor de um circuito RLC série, medida em volts.

Keywords:  transient response, second-order, parallel RLC circuit, series RLC circuits, exercises.

Respostas:

1. R = 5 Ohms
    L = 0,32 H
    C = 3,7 mF
    Valores aproximados.

8.12 a) C > 6 mF  b) C = 6 mF c) C < 6 mF
8.13 R > 120 Ohms
8.14 v = -1,33 (e^-0,5t - e^-0,2t)
8.15 L = 25H, C= 0,2 mF e R = 750 Ohms
8.22 C = 0,05 uF
8.23 C = 40 mF
8.24 i = e^-10t ( 4 cos 19,36 t + 1,05 sen 19,36 t)
8.30 C = 150 nF
8.31 VL(0+) = 80
8.36 v = 35 e^-0,8t (15 sen 0,6t + 20 sen 0,6 t)
        i = 5 e^-0,8t sen 0,6t
8.43 R = 8 ohms e C= 2,075 mF
8.47 v = 200 t e^-10t
8.53 i'' + (5/4) i' + 100 i = 600

terça-feira, 17 de novembro de 2015

Transitórios RLC série/paralelo de segunda ordem - Script com Scilab

Senhores Alunos:


Segue, abaixo, o script Scilab completo para o cálculo das constantes da solução das equações diferenciais e o traçado dos gráfico da corrente e da tensão dos transitórios RLC série e paralelo de segunda ordem.

Bom uso!

Keywords: transient response, second-order, parallel RLC circuit, series RLC circuit, Scilab.

----------------------------------------------------------------------

clc;
clear ;
xdel(winsid());
disp('Avaliação da Corrente no transitório RLC de 2a ordem');
Tipo = input('Informe <1> para circ. serie <2> para paralelo: ')
disp('Entrada de Dados');
R = input('Valor de R =');
L = input('Valor de L =');
C = input('Valor de C =');
I0 = input('Valor de I0 =');
V0 = input('Valor de V0 =');
w0 = 1/(sqrt(L*C));
if Tipo==1
    Vs = input('Valor de Vs =');
    dI0 = -(-Vs+R*I0+V0)/L;
    dV0 = I0/C
    alpha = R/(2*L);
else 
    Is = input('Valor de Is =');
    dV0 = -(-Is+I0+V0/R)/C;
    dI0 = V0/L;
    alpha = 1/(2*R*C);
end     
printf('di(0)/dt = %.2f, alpha = %.2f, w0 = %.2f\n',dI0,alpha,w0); 
printf('dv(0)/dt = %.2f\n',dV0); 
if Tipo==1
    if alpha<w0
        disp('Caso subamortecido');
        wd = sqrt(w0^2-alpha^2);
        A1 = I0;
        A2 = (dI0 + alpha*A1)/wd;
        A3 = V0 - Vs;
        A4 = (dV0 + alpha*A3)/wd;
        printf('s1 = %.2f + j%.2f, s2 = %.2f - j%.2f\n',-alpha,wd,-alpha,wd);
        printf('wd = %.2f\n',wd);
        t = 0:0.001:5/alpha;
        i = exp(-alpha*t).*(A1*cos(wd*t) + A2*sin(wd*t));
        il = 'exp(-alpha*t)*(A1*cos(wd*t) + A2*sin(wd*t))';
        v = exp(-alpha*t).*(A3*cos(wd*t) + A4*sin(wd*t)) + Vs;
        vc = 'exp(-alpha*t)*(A3*cos(wd*t) + A4*sin(wd*t)) + Vs';
    elseif alpha>w0
        disp('Caso superamortecido');
        delta = sqrt(alpha^2-w0^2);
        s1 = -alpha + delta;
        s2 = -alpha - delta;
        A2 = (s1*I0 -dI0)/(2*delta);
        A1 = I0 - A2;
        A4 = (s1*(V0-Vs)-dV0)/(2*delta);
        A3 = V0 - Vs - A4;
        printf('s1 = %.2f, s2 = %.2f\n',s1,s2);
        tau = (1/s1)*(A1/A2); // pondera em relação as constantes
        t = 0:0.001:6*abs(tau);
        i = A1*exp(s1*t) + A2*exp(s2*t);
        il = 'A1*exp(s1*t) + A2*exp(s2*t)';
        v = A3*exp(s1*t) + A4*exp(s2*t) + Vs;
        vc = 'A3*exp(s1*t) + A4*exp(s2*t) + Vs';
    else
        disp('Caso de amortecimento crítico');
        s = -alpha;
        A2 = I0;
        A1 = dI0 + alpha*A2;
        A4 = V0 - Vs;
        A3 = dV0 + alpha*A4;
        printf('s = %.2f\n',s);
        t = 0:0.001:5/alpha;
        i = (A2 + A1*t).*exp(s*t);
        v = (A4 + A3*t).*exp(s*t) + Vs;
        il = '(A2 + A1*t)*exp(s*t)';
        vc = '(A4 + A3*t)*exp(s*t) + Vs';
    end
else  
    if alpha<w0
        disp('Caso subamortecido');
        wd = sqrt(w0^2-alpha^2);
        A3 = V0;
        A4 = (dV0 + alpha*A3)/wd;
        A1 = I0 - Is;
        A2 = (dI0 + alpha*A1)/wd;
        printf('s1 = %.2f + j%.2f, s2 = %.2f - j%.2f\n',-alpha,wd,-alpha,wd);
        printf('wd = %.2f\n',wd);
        t = 0:0.001:5/alpha;
        v = exp(-alpha*t).*(A3*cos(wd*t) + A4*sin(wd*t));
        i = exp(-alpha*t).*(A1*cos(wd*t) + A2*sin(wd*t)) + Is;
        vc = 'exp(-alpha*t)*(A3*cos(wd*t) + A4*sin(wd*t))';
        il = 'exp(-alpha*t)*(A1*cos(wd*t) + A2*sin(wd*t)) + Is';
    elseif alpha>w0
        disp('Caso superamortecido');
        delta = sqrt(alpha^2-w0^2);
        s1 = -alpha + delta;
        s2 = -alpha - delta;
        A4 = (s1*V0 -dV0)/(2*delta);
        A3 = V0 - A4;
        A2 = (s1*(I0-Is)-dI0)/(2*delta);
        A1 = I0 - Is - A2;
        printf('s1 = %.2f, s2 = %.2f\n',s1,s2);
        tau = (1/s1)*(A1/A2);// pondera em relação as constantes
        t = 0:0.001:6*abs(tau);
        v = A3*exp(s1*t) + A4*exp(s2*t);
        i = A1*exp(s1*t) + A2*exp(s2*t) + Is;
        vc = 'A3*exp(s1*t) + A4*exp(s2*t)';
        il = 'A1*exp(s1*t) + A2*exp(s2*t) + Is';
    else
        disp('Caso de amortecimento crítico');
        s = -alpha;
        A4 = V0;
        A3 = dV0 + alpha*A4;
        A2 = I0 - Is;
        A1 = dI0 + alpha*A2;
        printf('s = %.2f\n',s);
        t = 0:0.001:5/alpha;
        v = (A4 + A3*t).*exp(s*t);
        i = (A2 + A1*t).*exp(s*t) + Is;
        vc = '(A4 + A3*t)*exp(s*t)';
        il = '(A2 + A1*t)*exp(s*t) + Is';
    end
end 
printf('Constantes ED corrente, A1 = %.2f, A2 = %.2f\n',A1,A2);
printf('Constantes ED tensao, A3 = %.2f, A4 = %.2f\n',A3,A4);
printf("il(t) = %s\n",il);
printf("vc(t) = %s",vc);
subplot(211);
plot(t,i)
xlabel('Tempo (s)');
ylabel('Corrente (A)');
xgrid;
subplot(212);
plot(t,v)
xlabel('Tempo (s)');
ylabel('Tensão (A)');
xgrid;

Programação de Computadores I - Aula de 19/11

Senhores Alunos:

Baixem no link abaixo o material de nossa próxima aula:

Tipos de dados compostos: vetores.

Até quinta.

Computação Científica - Aula de 23/11

Senhores alunos:


Baixem aqui o material da nossa próxima aula que trata do tema "Fatorações LU e de Cholesky".

Boa semana!

segunda-feira, 16 de novembro de 2015

Introdução a Programação C - Aula de 16/11

Senhores alunos:

A partir deste link é possível acessar o conteúdo da segunda parte da nossa aula de hoje.

Até a noite!

quarta-feira, 11 de novembro de 2015

terça-feira, 10 de novembro de 2015

Programação de Computadores I - Primeira Avaliação

Senhores Alunos:

Na aula da próxima quinta-feira será concluída a exposição do conteúdo relativo a nossa primeira avaliação, ficando a nossa avaliação para o dia 26/11. 

Em função disso, disponibilizo nesse link uma pequena coletânea de questões relacionadas com o conteúdo.

Entretanto, lembro que "a disciplina não trabalha com lista de exercícios, os exercícios devem ser buscados na literatura" (postagem de 30 de setembro de 2015). Na internet também é possível encontrar inúmeras "listas de exercícios". Assim, quem não começou a fazer exercícios, mãos à obra!

Até a próxima quinta.

Programação de Computadores I - Aula de 12/11

Senhores alunos:


Abaixo estão disponíveis as notas de aula relativas a sequência de nosso conteúdo.

Seleção de multipla escolha.

Até quinta!

segunda-feira, 9 de novembro de 2015

quarta-feira, 4 de novembro de 2015

quarta-feira, 28 de outubro de 2015

Computação Científica - Aula de 9/11

Senhores alunos:


Baixem aqui o material da aula de 9/11.
Relembro das atividades extra-classe, que ficaram todas para o dia 8/11 (entrega por email):

- Dedução analítica para v(t), problema do bungee jumping;
- Script para estimar as derivadas por série de Taylor
- Solução do problema das cargas elétricas: interpretação gráfica      e função da bisseção.

Bom feriado!

terça-feira, 27 de outubro de 2015

Programação de Computadores - Código exemplo da Tarefa I

Senhores alunos:

Baixem aqui o programa exemplo para ser utilizado como referência na solução da Tarefa I.

Por se tratar de um arquivo executável (*.exe), a seguinte mensagem deve aparecer antes da confirmação do download:


divisor.zip não costuma ser baixado e pode ser perigoso

Senha para a descompactação: DivisoR

Boa Noite!

Programação de Computadores I - Aula de 29/10

Senhores Alunos:


Abaixo estão disponíveis as notas de aula relativas a sequência de nosso conteúdo. Antes, porém, continuaremos a nossa discussão sobre desvios em C e Scilab.

- Estruturas de controle de fluxo por repetição.

Até quinta!

segunda-feira, 26 de outubro de 2015

Computação Científica - Correção do material da aula de 26/10

Senhores alunos:


Baixem aqui o material da aula de 26/10 corrigido.

Quanto a equação que indica o número de iterações do método da bisseção para um dado erro absoluto, o resultado final é fruto de uma operação de mudança da base 10 para a base 2 e está correto.

No problema que solicita para determinar o valor da distância "x" para uma força de 1,25 N, haverá realmente duas soluções. Isso porque, nesse tipo de distribuição de cargas, a força resultante será máxima quando a distância "x" for igual ao raio "a" do condutor.

Não se esqueçam das atividades extra-classe, que ficaram todas para o dia 8/11 (entrega por email):

- Dedução analítica para v(t), problema do bungee jumping;
- Script para estimar as derivadas por série de Taylor
- Solução do problema das cargas elétricas, interpretação gráfica e função da bisseção.

Bom feriado!

Introdução a Programação em Linguagem C - Aula de 26/10/2015

Senhores alunos da turma 1880331A:


No link abaixo está disponível o arquivo relacionado com a segunda parte da aula de hoje.
Até a noite!

sexta-feira, 23 de outubro de 2015

Transitórios RL e RC de primeira ordem - Script com Scilab

Senhores Alunos:


Segue, abaixo, o script Scilab completo para a apresentação das equações e o traçado dos gráfico da corrente e da tensão dos transitórios RC e RL de primeira ordem.

Bom uso!

Keywords: transient response, first-order, RC circuit, RL circuit, Scilab.
  
---------------------------------------------------------------------
clc;
clear;
xdel(winsid());
disp('Avaliação do transitorio RL ou RC de 1a ordem');
Tipo = input('Informe <1> para circuito RC <2> RL: ');
disp('Entrada de Dados');
 R = input('Valor de R =');
 Vs = input('Valor de Vs =');
if Tipo==1
    C = input('Valor de C =');
    V0 = input('Valor de V0 =');
    tau = R*C;
else 
    L = input('Valor de L =');
    I0 = input('Valor de I0 =');
    tau = L/R;
end   
t = 0:tau/1000:6*tau;
printf(' tau = %g\n',tau);  
if Tipo==1
        v = Vs + (V0-Vs)*exp(-t/tau);
        i = -C*(1/tau)*((V0-Vs)*exp(-t/tau));
        printf('v = %g + [%g * exp(-t/%g)]\n',Vs,V0-Vs,tau);  
        printf('i = -[%g*exp(-t/%g)]\n',C*(1/tau)*(V0-Vs),tau);  
else  
        i = (Vs/R) + (I0-(Vs/R))*exp(-t/tau);
        v = -L*(1/tau)*((I0-(Vs/R))*exp(-t/tau));
        printf('i = %g + [%g * exp(-t/%g)]\n',Vs/R,I0-Vs/R,tau);  
        printf('v = -[%g*exp(-t/%g)]\n',L*(1/tau)*(I0-Vs/R),tau); 
end 
subplot(211);
plot(t,i)
xlabel('Tempo (s)');
ylabel('Corrente (A)');
xgrid;
subplot(212);
plot(t,v)
xlabel('Tempo (s)');
ylabel('Tensão (V)');
xgrid;

quinta-feira, 22 de outubro de 2015

Aula de 22/10 - Programação I

Senhores Alunos:


Abaixo estão disponíveis as notas de aula relativas a sequência de nosso conteúdo. Antes, porém, discutiremos as enumerações e as constantes numéricas.

- Estruturas de controle de fluxo por desvio.

segunda-feira, 19 de outubro de 2015

Computação Científica - Aula de 26/10

Senhores alunos:

Baixem aqui o material da nossa próxima aula.

Não se esqueçam das atividades extra-classe.

Boa semana!

quinta-feira, 15 de outubro de 2015

Senhores alunos de Circuitos Elétricos III:


Cliquem aqui para baixar uma lista com exercícios sobre transitórios de primeira ordem selecionados a partir do livro texto.

Até a próxima postagem!

segunda-feira, 5 de outubro de 2015

Programação de Computadores I - Material de aulas futuras

Senhores Alunos:

Abaixo estão disponíveis as notas de aula relacionadas com nossas próximas aulas:
- Caracteres e cadeia de caracteres;
- Tipos lógico e complexo. Enumerações. Constantes.

Boa semana!

Computação Científica - 2015/2 - Aula de 19/10

Senhores alunos:

Baixem aqui  as notas de aula relacionadas com a nossa segunda aula.

Os pequenos erros percebidos no material da nossa primeira aula já foram corrigidos. Podem dar um novo download no post passado.

Um dos colegas ficou com uma dúvida quanto a possibilidade do valor de epsilon poder ser dividido por 2. Na hora não entendi a dúvida. 

O que ocorre é que foi feita uma confusão entre epsilon e o menor valor representado. O epsilon é o passo mínimo (step) entre números da mesma faixa de magnitude, ou seja, de mesmo expoente. Se o epsilon for dividido por 2, obtém-ser um valor menor em outra faixa de magnitude, ou seja com outro expoente.

Boa semana!