segunda-feira, 6 de junho de 2011

Teoria dos Jogos - Microeconomia

Exemplo de um jogo para Teoria de jogos. Não é exemplo de nenhum site ou livro, desenvolvido por mim.

http://www.4shared.com/document/JCCGnKa6/Trabalho_de_Teoria_Microeconmi.html

Runge Kutta de 4ª ordem em C

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//Definindo a equação
double f(double t, double y){
                  return(9.8 - 12.5 * 12.5 / 68 * y);//coloque a função do seu problema
                            }                                         //Nesse caso: dy/dt=9.8-(12,5²/68)*y, mas vale pra qualquer função
int main(){
   
    FILE*arq;
    int N, //quantidade de partições do domínio da solução y(t)
        i;
    double //troque os valores para se adequar ao seu problema
        a=0.0, b=8.0, //extremos do domínio da solução y(t)
        alfa=0, //y(t_0)=y(a)=alfa
        h=0.01, //tamanho do passo
        w,  //aproximações da solução y(t) garedas pelo método
        t,  //domínio da solução y(t)
        K_1,K_2,K_3,K_4;
       
 //passo 1      
 //Inicialização
 t=a;
 w=alfa;
 N=int(b/h)+1;
 arq=fopen("Runge_Kutta_4_Ordem.txt","w");
       fprintf(arq,"\n    Aproximacoes da solucao pelo método de Runge-Kutta de 4 Ordem:\n\n");
    fprintf(arq,"\n  **********************************");
    fprintf(arq,"\n        t            R_K ordem 4");
    fprintf(arq,"\n    %lf     %lf",t,w);
   
 //passo 2   
 for(i=1;i<=N;i++){
                   
            //passo 3
            K_1=h*f(t,w);
            K_2=h*f(t+h/2.0,w+K_1/2.0);
            K_3=h*f(t+h/2.0,w+K_2/2.0);
            K_4=h*f(t+h,w+K_3);
           
            //passo 4
            w=w+(K_1+2*K_2+2*K_3+K_4)/6;
            t=a+i*h;
            if(t==2.4){
                      printf("\nSolucao para t=%lf:     %lf",t,w);
                      }
            if(t==6.0){
                      printf("\nSolucao para t=%lf:     %lf",t,w);
                      }
            if(t==8.0){
                      printf("\nSolucao para t=%lf:     %lf\n\n",t,w);
                      }
            //passo 5
            fprintf(arq,"\n    %lf     %lf",t,w);
                   }
 fprintf(arq,"\n  *************************************");
 fclose(arq);
 printf("==> O restante das solucoes foram gravadas no arquivo Runge_Kutta_4_Ordem.txt.");
 getchar();
 getchar();
          }