matlab vs Scilab
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

matlab vs Scilab



  1. #1
    ABN84

    matlab vs Scilab


    ------

    bonjour,
    j'ai un travail à faire sous scilab. ayant deja fait une grande partie sous matlab, j'ai continué et me suis dit qu'à la fin j'importerais un fichier matlab dans scilab et le tour sera joué.
    le hic est que si je lance le fichier matlab j'obtiens un resultat mais avec scilab j'en obtiens un autre. comment regler ça?
    merci

    *.m
    Code:
    max=1000;%nbr max d'iterations
    
    l=6;%languer du mur
    h=3;%hauteur du mur
    e=0.3;%epaisseur du mur
    
    n1=1/29;%n=1/(r-1)//r=30
    n2=1/299;%n=1/(r-1)//r=300
    n3=1/249;%n=1/(r-1)//r=300-50=250
    
    lambdab=1.8;%lambde du beton
    rho=2300;% rho du beton
    E1=1368;
    emis=0.9;
    c=800;
    
    k=ones(30,300) * 273.13;%matrice qui sert à rammener les K en °C
    
    sigma=5.67*10^(-8);%cte de staphane-boltzmann
    
    t0=278.13;%T° ambiante de 5°C
    tc=308.13;%chauffage à 35°C
    
    p0=t0^4*sigma;
    s=l*e;
    td=14400;%debut du chauffage à 10H
    tf=28800;%fin du chauffage à 14H
    
    t=21600;%instant auquel on veut connaitre la T° // à exprimer en secondes à partir de 6H du matin
    
    omega=ones(30,300) * 278.13;%initialisation du domaine
    
    %d2: face est:
    
    a=t*pi()/43300;%secondes rammenés en radians //a: angle que fait le soleil avec la normale à la surface
    
    if a<(pi()/2)% faces est exposé au rayonnement
        t2=(((278.13^4)/2)+E1/(sigma*cos(a)))^0.25;
        d2=ones(1,300)*t2;%est
    else 
        t2=278.13;
        d2=ones(1,300)*t2;%est
    end
    
    
    %d5: face west en contact avec le radiateur:
    
    if t<td
        t5=278.13;
        d5=ones(1,50)*t5;%west/radiateur
    elseif t<tf
        t5=tc;
        d5=ones(1,50)*t5;%west/radiateur
    else
        t5=278.13;
        d5=ones(1,50)*t5;%west/radiateur
    end
    
    %d1: base:
    
    d1=ones(30,1)*278.13;%base
    d1(1,1)=t5; %base
    d1(30,1)=t2; %base
    for m=1:1:max
        for i=2:1:29
            d1(i,1)=d1(i,1)+(-2*d1(i,1)+d1(i-1,1)+d1(i+1,1))/(2+n1*rho*c/lambdab); % base
        end
    end
    
    %d4: face west hors radiateur:
    
    d4=ones(1,250)*278.13;%west/hors radiateur
    d4(1,1)=t5;%west/hors radiateur
    d4(1,250)=278.13; ;%west/hors radiateur
    for m=1:1:max
        for j=2:1:249
            d4(1,j)=d4(1,j)+(-2*d4(1,j)+d4(1,j-1)+d4(1,j+1))/(2+n3*rho*c/lambdab);% west/hors radiateur
        end
    end
    
    %d3: face superieure
    
    d3=ones(30,1)*278.13;%haut
    d3(1,1)=278.13; %haut
    d3(30,1)=t2; %haut
    for m=1:1:max
        for i=2:1:29
            d3(i,1)=d1(i,1)+(-2*d1(i,1)+d1(i-1,1)+d1(i+1,1))/(2+n1*rho*c/lambdab); %haut
        end
    end
    
    d6=ones(1,300)*0;%d6 rassemble d4 et d5
    d6(1,1:50)=d5;
    d6(1,51:300)=d4;
    
    omega(30,:)=d6;
    omega(:,300)=d1;
    omega(1,:)=d2;
    omega(:,1)=d3;
    
    for j=2:1:299
        for i=2:1:29
            omega(i,j)=omega(i,j)+(-4*omega(i,j)+omega(i-1,j)+omega(i,j-1)+omega(i+1,j)+omega(i,j+1))/(4+n1*n2*rho*c/lambdab);%eq de la chaleur à deux dimensions
            omegac=omega-k;
        end
    end
    
    plot(omegac);
    *.sci
    Code:
    // Display mode
    mode(0);
    
    // Display warning for floating point exception
    ieee(1);
    
    max = 1000;
    //nbr max d''iterations
    
    l = 6;
    //languer du mur
    h = 3;
    //hauteur du mur
    e = 0.3;
    //epaisseur du mur
    
    n1 = 1/29;
    //n=1/(r-1)//r=30
    n2 = 1/299;
    //n=1/(r-1)//r=300
    n3 = 1/249;
    //n=1/(r-1)//r=300-50=250
    
    lambdab = 1.8;
    //lambde du beton
    rho = 2300;
    // rho du beton
    E1 = 1368;
    emis = 0.9;
    c = 800;
    
    k = ones(30,300)*273.13;
    //matrice qui sert à rammener les K en °C
    
    sigma = 5.67*(10^(-8));
    //cte de staphane-boltzmann
    
    t0 = 278.13;
    //T° ambiante de 5°C
    tc = 308.13;
    //chauffage à 35°C
    
    p0 = (t0^4)*sigma;
    s = l*e;
    td = 14400;
    //debut du chauffage à 10H
    tf = 28800;
    //fin du chauffage à 14H
    
    t = 21600;
    //instant auquel on veut connaitre la T° // à exprimer en secondes à partir de 6H du matin
    
    omega = ones(30,300)*278.13;
    //initialisation du domaine
    
    //d2: face est:
    
    a = (t*mtlb_double(%pi))/43300;
    //secondes rammenés en radians //a: angle que fait le soleil avec la normale à la surface
    
    if mtlb_logic(a,"<",mtlb_double(%pi)/2) then
      // faces est exposé au rayonnement
      t2 = mtlb_a((278.13^4)/2,E1/(sigma*cos(a)))^0.25;
      d2 = ones(1,300)*t2;
      //est
    else
      t2 = 278.13;
      d2 = ones(1,300)*t2;
      //est
    end;
    
    
    //d5: face west en contact avec le radiateur:
    
    if t<td then
      t5 = 278.13;
      d5 = ones(1,50)*t5;
      //west/radiateur
    elseif t<tf then
      t5 = tc;
      d5 = ones(1,50)*t5;
      //west/radiateur
    else
      t5 = 278.13;
      d5 = ones(1,50)*t5;
      //west/radiateur
    end;
    
    //d1: base:
    
    d1 = ones(30,1)*278.13;
    //base
    d1(1,1) = t5;
    //base
    d1(30,1) = t2;
    //base
    for m = 1:1:max
      for i = 2:1:29
        d1(i,1) = d1(i,1)+(-2*d1(i,1)+d1(i-1,1)+d1(i+1,1))/(2+((n1*rho)*c)/lambdab);  // base
      end;
    end;
    
    //d4: face west hors radiateur:
    
    d4 = ones(1,250)*278.13;
    //west/hors radiateur
    d4(1,1) = t5;
    //west/hors radiateur
    d4(1,250) = 278.13;
    //west/hors radiateur
    for m = 1:1:max
      for j = 2:1:249
        d4(1,j) = d4(1,j)+(-2*d4(1,j)+d4(1,j-1)+d4(1,j+1))/(2+((n3*rho)*c)/lambdab);  // west/hors radiateur
      end;
    end;
    
    //d3: face superieure
    
    d3 = ones(30,1)*278.13;
    //haut
    d3(1,1) = 278.13;
    //haut
    d3(30,1) = t2;
    //haut
    for m = 1:1:max
      for i = 2:1:29
        d3(i,1) = d1(i,1)+(-2*d1(i,1)+d1(i-1,1)+d1(i+1,1))/(2+((n1*rho)*c)/lambdab);  //haut
      end;
    end;
    
    d6 = ones(1,300)*0;
    //d6 rassemble d4 et d5
    d6(1,1:50) = d5;
    d6(1,51:300) = d4;
    
    omega(30,:) = d6;
    omega(:,300) = d1;
    omega(1,:) = d2;
    omega(:,1) = d3;
    
    for j = 2:1:299
      for i = 2:1:29
        omega(i,j) = omega(i,j)+(-4*omega(i,j)+omega(i-1,j)+omega(i,j-1)+omega(i+1,j)+omega(i,j+1))/(4+(((n1*n2)*rho)*c)/lambdab);  //eq de la chaleur à deux dimensions
        omegac = mtlb_s(omega,k);
      end;
    end;
    
    plot(omegac);

    -----
    "Engineering is the art of making what you want from what you get"

  2. #2
    ABN84

    Re : matlab vs Scilab

    j'ai rien dit
    "Engineering is the art of making what you want from what you get"

Discussions similaires

  1. Pb de conversion Matlab/Scilab...
    Par invited706c2ee dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 12/08/2009, 16h13
  2. matlab/scilab
    Par ABN84 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 07/05/2008, 08h07
  3. Resolution de système avc Scilab (ou matlab)
    Par invite5cb66036 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 30/03/2008, 13h36
  4. matlab / scilab
    Par invited9d78a37 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 13/02/2007, 15h44
  5. Scilab / Matlab
    Par ABN84 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 23/01/2007, 20h17
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...