Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2077 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  matlab

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

matlab

n°984905
smileye1
Posté le 17-02-2005 à 14:33:35  profilanswer
 

Bonjour,
 
Je réalise sous matlab un programme permettant de résoudre une EDO de Runge Kutta d'ordre 4. Il s'agit d'une EDO de thermique.
 
Mais Matlab détecte des erreurs que je ne comprends pas
 
Les erreurs sont:
-la fonction ' f ' n'est pas défini
-il y a une erreur à la ligne a=feval(f,t,T)
-de même pour la ligne [t,T]=f_rangeK(' f ',t0,T0,tf,h)  
 
Ci-dessous le fichier de commande et le fichier de la fonction
 
Pouvez vous me dire que signifie ces erreurs
merci beaucoup
 
%*************************************************************************%
%   PROJET MATLAB
%  
% Problème 1 : Etude thermique d'un fusible en plomb
 
%*************************************************************************%
 
%*************************************************************************%
%          FICHIER DE COMMANDE  c_probleme1.m
%*************************************************************************%
 
 
% paramètres du fusible
 
I=1;
 
Cp = 130;  % capacité calorifique massique du plomb (J/kg/K)
u = 11300;  % masse volumique du plomb (kg/m^3)
k = 2.5;    % paramètre du terme de convection
o = 5.67*10^(-8);  % paramètre du terme de rayonnement
 
rho = 20.7*10^(-8);  % resistivité electrique ( ohm.m)
r = 10^(-3);  % rayon du fusible (m)
Pv = rho*(I/(pi*r.^2)).^2;  % puissance volumique
 
 
 
% condition initiale
 
T0 = 298; % Température initiale du fusible (K)
Tf = 600; % température de fusion du plomb (K)
 
t0= 0; % borne inférieure de l'intervalle de temps
tf = 80; % borne supérieure de l'intervalle de temps
 
f = 'Pv./(Cp.*u)-2*(k.*(T-T0).^(5/4)+o.*(T.^4-T0.^4))./(r.*Cp.*u)';
 
 
h=1;
 
[t,T] = f_rangeK('f',t0,T0,tf,h);
 
% tracé de T(t)
 
figure(1);
hold on
plot(t,T)
title('evolution de la température en fonction du temps');
xlabel('Temps');
ylabel('Température (K)');
 
 
 
 
 
%*************************************************************************%
%   PROJET MATLAB
%  
% Problème 1 : Etude thermique d'un fusible en plomb
 
%*************************************************************************%
 
%*************************************************************************%
%          FICHIER DE FONCTION f_RangeK.m
%*************************************************************************%
 
 
% RESOLUTION D'EDO DU 1er ORDRE PAR LA METHODE DE RANGE KUTA D'ORDRE '
 
 
function [t,T] = f_rangeK(f,t0,T0,tf,h)
 
% [t,T]    : tableau de valeurs de la fonction T(t)
% t0, tf   : bornes de l'étude de la fonction
% T0       : conditions initiales : T(t0) = T0
% h        : pas de discrétisation
% a,b,c,d  : élément de calcul pour la méthode
 
 
tx = t0:h:tf;
Ty = T0;
 
for i=1:floor((tf-t0)/h)
    t = tx(i);
    T = Ty(i);
    a = feval(f,t,T);
     
    t = tx(i)+h/2;
    T = Ty(i)+a*h/2;
    b = feval(f,t,T);
     
    t = tx(i)+h/2;
    T = Ty(i)+b*h/2;
    c = feval(f,t,T);
     
    t = tx(i)+h;
    T = Ty(i)+c*h;
    d = feval(f,t,T);
     
    Ty(i+1) = Ty(i)+h*(a+2*b+2*c+d)/6;
     
end
 
t = tx;
T = Ty;

mood
Publicité
Posté le 17-02-2005 à 14:33:35  profilanswer
 

n°996618
jktec
Posté le 28-02-2005 à 23:33:47  profilanswer
 

bou c ki ce mec de l'EPF ki a pas compris :) ... moi aussi ca marche pa

n°996798
nraynaud
lol
Posté le 01-03-2005 à 09:29:44  profilanswer
 

j'ai une bonne blague : y'a un solveur runge-kuta dans simulink (qui doit d'ailleur être accessible depuis matlab), vous faites pas chier à écrire le solveur vous-même.
 
un petit cours de lecture de manuel ?  

Citation :

FEVAL Execute function specified by string.
    If F is a string containing the name of a function (usually
    defined by an M-file), then  FEVAL(F,x1,...,xn)  evaluates
    that function at the given arguments.  
 
    For example, F = 'foo', FEVAL(F,9.64) is the same as foo(9.64).
    FEVAL is usually used inside functions which have the names of
    other functions as arguments.  Examples include FZERO and EZPLOT.
 
    [y1,..,yn] = FEVAL(F,x1,...,xn) returns multiple output arguments.
 
    Within methods that overload built-in functions, use
    BUILTIN(FUN,...) to execute the original built-in function.


---------------
trainoo.com, c'est fini

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  matlab

 

Sujets relatifs
matlab: petite question mais qui commence à m'enerver..[Matlab] Programme de compression JPEG
find sous matlab[Matlab] Programme de compression JPEG
question sur matlab[matlab] peut on faire du multitache avec matlab
programmer proprement sous matlabMATLAB - Traitement d'images
Lecture d un fichier avec matlabmatlab, help!!!
Plus de sujets relatifs à : matlab


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR