Kashub's Code Barn - "aaa"

podświetlone jako cpp (dodał(a) aaa @ 2009-01-27 13:00:26)

Twoja wyszukiwarka
Podświetl ten kod w:
Ostatnio dodane:
Losowe wpisy:
#include<iostream>
#include<math.h>
#include <fstream>
#include "calerf.h"
void rozw_analityczne (int ile_x, int ile_t, double h, double dt);
void bezp(int ile_x, int ile_t);
using namespace std;
 
double D = 1;   //wspolczynnik ciepla
double t_max = 2;  // max t (na osi y)
double x_max = 6*sqrt(D*t_max);  // max na osi x
double lambda = 0.4; //lambda dla metody bezposredniej
 
 
int main ()
{  
    const int ile_x = 40; //krok na osi x
    double h = x_max / ile_x;
    double dt =  h*h*lambda / D;
    const int ile_t = static_cast<const int> ( (t_max/dt) + 1 ); 
    //cout<<ile_t<<endl;
    rozw_analityczne(ile_x,ile_t,h,dt);
    bezp (ile_x, ile_t);
    system ("pause");
}
 
 
void rozw_analityczne (int ile_x, int ile_t, double h, double dt)
{
     int ile=0;
    double **analit; 
    analit=new double*[ile_t];
    for (int i=0;i<ile_t;i++)
    analit[i]=new double[ile_x];     
    double t = 0,x = 0;
    ofstream file( "analit.txt" );
    for (int j = 0; j < ile_t; j++)
    {
        file<<"Dla t="<<j<<endl<<endl;
        for (int i = 0; i < ile_x ; i++)
        {
        analit[j][i] = erfc (x / (2*sqrt(D*t)));
        //cout<<analit[j][i]<<endl;
        file<<"x["<<i<<"] U(x,t) = "<<analit[j][i]<<endl;
        ile++;
        x = x+h;
        }
    file<<"\n\n"<<endl;
    x = 0;
    t = t+dt;
    }
    file.close();
}
 
void bezp(int ile_x, int ile_t)
{
     int ile = 0;
    double **bezpo;
    bezpo=new double*[ile_t];
    for (int i=0;i<ile_t;i++)
    bezpo[i]=new double[ile_x];
     ofstream file( "bezpo.txt" );
     file<<"Dla t=0"<<endl<<endl;
     for(int j=0; j<ile_x; j++)  //warunek poczatkowy
     {
         file<<"x["<<j<<"] U(x,t) = "<<bezpo[0][j]<<endl;
     }
     file<<"\n\n"<<endl;
     for( int i = 0; i < ile_t; i++ ) //warunek brzegowy dla x0
     {
          bezpo[i][0] = 1;
     }        
     for( int i = 0; i < ile_t; i++ ) //warunek brzegowy dla x ostatniego
     {
          bezpo[i][ile_x-1] = 1;
     }     
    for(int i=1; i<ile_t; i++)
    {
            file<<"Dla t="<<i<<endl<<endl;
            for (int j=1; j<ile_x; j++)
            {
             bezpo[i][j] =bezpo[i-1][j] + lambda*(bezpo[i-1][j-1] -2* bezpo[i-1][j] + bezpo[i-1][j+1]);
             ile++;
             file<<"x["<<j<<"] U(x,t) = "<<bezpo[i][j]<<endl;
             }
    file<<"\n\n"<<endl;
    }
    file.close();
}
 
 
| Katalog Sklepów internetowych | | sklep zoologiczny | | seksowne majtki | | Skracacz linków | | Darmowe Blogi | | Jak przenieść bloga | | Załóż za darmo bloga | | Kody programów | | Gnieżdżewo | | Opisy GG |