Mudanças entre as edições de "Mmcc3"

De WikiLICC
Ir para: navegação, pesquisa
(Criou página com 'MMCC3 - '''Modelagem matemática e computacão científica III''' Prof.Dagoberto Adriano Rizzotto Justo ==Horários== Sala B120 - Terça e quinta - 10:30 as 12:00 (...')
 
m (Lista de Exercícios)
 
(20 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 3: Linha 3:
 
Prof.[[dago|Dagoberto Adriano Rizzotto Justo]]
 
Prof.[[dago|Dagoberto Adriano Rizzotto Justo]]
  
==Horários==
+
==Notas de aula==
Sala B120 - Terça e quinta - 10:30 as 12:00 (Semestre 2014/1)
 
  
* [http://www.mat.ufrgs.br/~dago/metnum/metnum.pdf Notas de Aula]: para impressão. (Sujeito a mudancas durante o semestre.)
+
* [http://chasqueweb.ufrgs.br/~djusto/metnum/metnum.pdf Notas de Aula]: para impressão. (Sujeito a mudancas durante o semestre.)
* [http://www.mat.ufrgs.br/~dago/metnum/metnum_slides.pdf Slides de Aula]: para visualização na tela.
+
* [http://chasqueweb.ufrgs.br/~djusto/metnum/metnum_slides.pdf Slides de Aula]: para visualização na tela.
  
 
==Lista de Exercícios==
 
==Lista de Exercícios==
  
* Arquivo Latex exemplo de [http://www.mat.ufrgs.br/~dago/metnum/temacasa.tex tema de casa].
+
* Arquivo Latex exemplo de [http://chasqueweb.ufrgs.br/~djusto/metnum/temacasa.tex tema de casa].
  
 +
* Lista 1:  9.5
 +
* Lista 2:  9.8, 9.9, 10.1, 10.2 (escolha 4)
 +
* Lista 3:  10.10, 10.11, 10.12 (10/maio)
 +
* Lista 4:  11.4, 11.5, 11.10 (29/maio)
 +
* Lista 5:  12.3, 13.6, 13.9 (19/jun)
 +
 +
<!--
 +
* Lista 1:  3.12, 3.13, 3.14, 3.15 (entrega 24/mar).
 +
* Lista 2:  9.1, 9.3, 9.5 (entrega 19/abr)
 +
* Lista 3:  9.8, 9.14, 10.1,10.2 (entrega 19/mai)
 +
* Lista 4:  10.10, 10.11, 11.4  (entrega 21/jun)
 +
* ...
 +
-->
 +
 +
<!--
 
* Lista 1: 2.7, 5.1, 5.2, 8.2,8.3. (entrega 20/03)
 
* Lista 1: 2.7, 5.1, 5.2, 8.2,8.3. (entrega 20/03)
 
* Lista 2: 9.5, 9.6, escolha um em [9.8 ou 9.9 ou 9.10] (entrega 08/04)
 
* Lista 2: 9.5, 9.6, escolha um em [9.8 ou 9.9 ou 9.10] (entrega 08/04)
 
* Lista 3: 9.14, 10.1, (10.7 ou 10.8), 10.9, 10.10, 10.12, (11.1 ou 11.2). (entrega 08/maio)
 
* Lista 3: 9.14, 10.1, (10.7 ou 10.8), 10.9, 10.10, 10.12, (11.1 ou 11.2). (entrega 08/maio)
  
<!--
 
 
* Lista 2: 5.1, 5.2, 5.5, 5.7, 6.5, 6.13 (entrega 15/abr).
 
* Lista 2: 5.1, 5.2, 5.5, 5.7, 6.5, 6.13 (entrega 15/abr).
 
* Lista 3: (entrega 24/abr)
 
* Lista 3: (entrega 24/abr)
Linha 73: Linha 86:
 
     DG
 
     DG
 
     13.9)  u_t+ ((au)²)_x=bu_xx,    a e b - bifurcacao
 
     13.9)  u_t+ ((au)²)_x=bu_xx,    a e b - bifurcacao
 
Ivana Martins
 
VINÍCIUS FERNANDES MORETTI
 
Aline da Rosa Parigi
 
Juliana Sanches
 
ELIZANDRO MAX BORBA
 
LUCAS DE OLIVEIRA CONTIERO
 
Arlindo Dutra Carvalho Junior
 
Otonio Dutra da Silva
 
SAMUEL DA SILVA GOMES
 
Carolina Rocha Freitas
 
Taline Foletto
 
CASSIO BAISSVENGER PAZINATTO
 
Cristina Zaniol
 
Felipe Luy Valério
 
  
 
   -->
 
   -->
Linha 207: Linha 205:
 
  endfunction
 
  endfunction
  
 +
== CrankNicolson ==
 +
clear
 +
function v=u0(x)
 +
  //  if( 1/4 <=x & x <= 3/4 ) then
 +
  //      v=1-abs(4*(x-1/2))
 +
  //  else
 +
  //      v=0
 +
  //  end
 +
    v=sin(x*(2*%pi))
 +
endfunction
 +
 +
L=1    // comprimento do dominio
 +
N=160    // intervalos
 +
h=L/(N)
 +
Tfinal=2.5
 +
lambda=0.8
 +
k=lambda*h
 +
a=1
 +
 +
x=linspace(0,L+h,N+2)
 +
u=zeros(N+2)
 +
 +
// condicao inicial
 +
for i=1:N+2
 +
    u(i)=u0( x(i) )
 +
end
 +
plot(x,u,'*-b');xgrid
 +
 +
//A(N+1,N:N+1)=[-1  1]; // cond. numerica
 +
//A(N+1,N-1:N+1)=[1 -2 1]; // cond. numerica
 +
 +
A(1,1)    =[1]; // cc periodica
 +
A(1,N+1)    = -1
 +
A(N+2,N+2)=[1]; // cc periodica
 +
A(N+2,2)  =-1
 +
for i=2:N+1
 +
    A(i,i-1:i+1)=[-a*lambda/4  1  a*lambda/4]
 +
end
 +
 +
for n=1:(Tfinal/k)
 +
    rhs(1)= 0 //u(N)
 +
    rhs(N+2)=0 //u(2)
 +
    for i=2:N+1
 +
        rhs(i)= -a*lambda/4*u(i+1)+u(i)+a*lambda/4*u(i-1)
 +
    end
 +
 +
    unew=inv(A)*rhs
 +
    u=unew
 +
    normav(n)=norm(unew(1:N)*sqrt(h))
 +
    for i=1:N+2
 +
        exata(i)=u0( x(i)-a*k*n )
 +
    end
 +
    erro=abs(exata-unew)
 +
    normaerro(n)=norm(erro(1:N)*sqrt(h)  )
 +
end
 +
plot(x,u,'.r-')
 +
plot(x,exata,'g.-')
 +
 +
//erro=v-exata
  
 
==Referências==
 
==Referências==

Edição atual tal como às 17h36min de 6 de junho de 2017

MMCC3 - Modelagem matemática e computacão científica III

Prof.Dagoberto Adriano Rizzotto Justo

Notas de aula

Lista de Exercícios

  • Lista 1: 9.5
  • Lista 2: 9.8, 9.9, 10.1, 10.2 (escolha 4)
  • Lista 3: 10.10, 10.11, 10.12 (10/maio)
  • Lista 4: 11.4, 11.5, 11.10 (29/maio)
  • Lista 5: 12.3, 13.6, 13.9 (19/jun)



Trabalhos finais

Exemplos

  • Arquivo Maple para calcular fator de amplificacao FTCS, laxf.
  • Arquivo Maple para calcular raiz de polinomio e converter para latex.
  • Exemplo de arquivo Maple para resolver sistemas.

Scilab

Rodando um programa em Scilab

  • Digite editor no console para abrir o editor.
  • Digite o programa (como os exemplos abaixo)
  • Salve o programa com a extensão .sce ou .sci
  • Selecione o menu Execute e Load into Scilab (Control+L)
  • No console, digite o nome da função desejada, por exemplo,
iteracao(10)

Exemplos

  • Exercício 2.1
function [x]=iteracao(x0)
 x(1)=x0;
 for k=1:100
   x(k+1)=x(k)*(3-x(k)^2)/2;
 end
 plot(x,'.-')
endfunction
  • Exercício 2.2
function [c]=mandelbrot(Total)
 c=(rand()-0.5+%i*(rand()-0.5))*3
 z(1)=0;
 k=1;  
 while(k<Total) //&(abs(z(k))<2)
   z(k+1)=z(k)^2+c;
   k=k+1;
 end
 if( abs(z(k))<2 ) then
   plot(real(c),imag(c),'*m');
 end
 
endfunction
  • Adveccao com cond. contorno periódicas
function [v,normv]=adveccao(N,Tfinal)
L = 1;    // extremo direito
a = 1;    // velocidade
h = (L)/N;  //passo
k = 1.6*h; // passo de tempo
x = linspace(0,L+h,N+2); // dominio
v = exp(-8*(x-0.5).^2);
v = 0.0*x;
v(N/4:N/2)=1;
v = sin(2*%pi*x/L);

plot(x,v,'b.-')
ItTotal = round(Tfinal/k);
for n=1:ItTotal
   for i=2:N+1;
     vnew(i)=(v(i-1)+v(i+1))/2-a*k*(v(i+1)-v(i-1))/(2*h);
   end
   vnew(1)   = vnew(N+1); // cond.contorno
   vnew(N+2) = vnew(2); // cond.contorno
   v = vnew;
   normv(n)=norm(v(1:N),2)*sqrt(h);
end
plot(x,vnew,'r*-')

razao = normv(ItTotal)/normv(ItTotal-1);
disp(razao)

endfunction


  • Leapfrog
function [v,normv]=leapfrog(N,Tfinal)
L = 1;    // extremo direito
a = 1;    // velocidade
h = (2*L)/N;  //passo
k = 0.9*h; // passo de tempo
x = linspace(-L,L,N+1); // dominio
//v = exp(-8*(x-0.5).^2);
v=(abs(x)<=1/2).*cos(%pi*x).^2;
//v = 0.0*x;
//v(N/4:N/2)=1;
//v  = sin(2*%pi*x/L);
for i=2:N;
  vn(i)=v(i) -a*k*(v(i+1)-v(i-1))/(2*h);
end
vn(1)=0; vn(N+1)=0;

plot(x,v,'b.-')
ItTotal = round(Tfinal/k);
for n=1:ItTotal
  for i=2:N;
    vnew(i)=v(i) -a*(2*k)*(vn(i+1)-vn(i-1))/(2*h);
  end
  vnew(1)   = 0; // cond.contorno
  vnew(N+1)   = 0; // cond.contorno

  //vnew(N+1) = vnew(N);      // A cond.contorno 
  //vnew(N+1) = 2*vnew(N)-vnew(N-1); // B cond.contorno
  //vnew(N+1) = 2*vn(N)-v(N-1); // C cond.contorno

  //vnew(N+1) = vn(N); // D cond.contorno
  t=(n+1)*k;
  exata=((abs(x-a*t))<=1/2).*cos(%pi*(x-a*t)).^2;

  v = vn;
  vn= vnew;
  normv(n)=norm(v(1:N),2)*sqrt(h);
end
plot(x,vnew,'r*-')
plot(x,exata,'b.')
///plot(x,exata-vnew','b*-')
razao = normv(ItTotal)/normv(ItTotal-1);
disp(razao)

endfunction

CrankNicolson

clear
function v=u0(x)
  //  if( 1/4 <=x & x <= 3/4 ) then
  //      v=1-abs(4*(x-1/2))
  //  else
  //      v=0
 //   end
   v=sin(x*(2*%pi))
endfunction

L=1    // comprimento do dominio
N=160    // intervalos 
h=L/(N)
Tfinal=2.5
lambda=0.8
k=lambda*h
a=1

x=linspace(0,L+h,N+2)
u=zeros(N+2)

// condicao inicial
for i=1:N+2
    u(i)=u0( x(i) )
end
plot(x,u,'*-b');xgrid
//A(N+1,N:N+1)=[-1  1]; // cond. numerica
//A(N+1,N-1:N+1)=[1 -2 1]; // cond. numerica
A(1,1)    =[1]; // cc periodica
A(1,N+1)    = -1
A(N+2,N+2)=[1]; // cc periodica
A(N+2,2)  =-1
for i=2:N+1
   A(i,i-1:i+1)=[-a*lambda/4  1  a*lambda/4]
end

for n=1:(Tfinal/k)
    rhs(1)= 0 //u(N)
    rhs(N+2)=0 //u(2)
    for i=2:N+1
        rhs(i)= -a*lambda/4*u(i+1)+u(i)+a*lambda/4*u(i-1)
    end

    unew=inv(A)*rhs
    u=unew
    normav(n)=norm(unew(1:N)*sqrt(h))
    for i=1:N+2
       exata(i)=u0( x(i)-a*k*n )
    end
    erro=abs(exata-unew)
    normaerro(n)=norm(erro(1:N)*sqrt(h)   )
end
plot(x,u,'.r-')
plot(x,exata,'g.-')

//erro=v-exata

Referências

Softwares

Links para instalar Latex:

Veja como instalar o Latex: