Equation diff - Matlab
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Equation diff - Matlab



  1. #1
    invite0e8e40f8

    Equation diff - Matlab


    ------

    Bonjour,

    j'aimerais utiliser matlab pour me donner le résultat d'une équation différentielle:

    s=RC*du/dt+u

    où s n'est pas constante.

    en effet, s un signal "mi-carré, mi-exp".

    Pour ce faire, j'ai écrit ceci:

    fichier eqdiff.m


    Code:
    % eqdiff.m 
    
    clear;
    clc;
    pas=0.0001;
    tmax=30;
    freq=5;
    alpha=1;
    A=4;
    B=2;
    
    t=0:pas:tmax
    
    y1= (A/2)*square((freq/2*pi)*t)+A/2;
    y2= (B/2)*square((freq/2*pi)*t+pi)+B/2;
    y3=(1-exp(-alpha*t));
    s=y1+y2.*y3;
    
    
    function du=eqdiff(t,u)
    
    % Eq diff
    
    R=10000;
    C=1*10^(-9);
    
    du(1)=(s-u(1))./(R*C);
    fichier calcul:

    Code:
     [ t , u ] = ode45 ( 'eqdiff' , 0 , 30 , [ 0 ] )
     figure
     plot(t,u)
    Malheureusement, j'obtiens des messages d'erreurs que je ne comprends pas.
    Code:
    Warning: Obsolete syntax.  Use ode45(fun,tspan,y0,...) instead.
    > In funfun\private\odearguments at 41
      In ode45 at 173
      In calcul at 22
    ??? Error: File: C:\Calcul Matlab\eqdiff.m Line: 20 Column: 1
    Function definitions are not permitted at the prompt or in scripts.
    
    Error in ==> funfun\private\odearguments at 80
        if (nargin(ode) == 2)           
    
    Error in ==> ode45 at 173
    [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, ...
    
    Error in ==> calcul at 22
     [ t , u ] = ode45 ( 'eqdiff' , 0 , 30 , [ 0 ] )
    Pourriez-vous SVP m'expliquer ce qui ne va pas?

    Merci d'avance

    -----

  2. #2
    invite551c2897

    Re : Equation diff - Matlab

    Bonsoir.
    function du=eqdiff(t,u)

    % Eq diff

    R=10000;
    C=1*10^(-9);

    du(1)=(s-u(1))./(R*C);
    s n'est pas défini ?
    essaie ode113.

  3. #3
    invite0e8e40f8

    Re : Equation diff - Matlab

    S est défini (mais sans doute pas comme elle le devrait...) dans eqdiff.m:


    Code:
    t=0:pas:tmax
    
    
    y1= (A/2)*square((freq/2*pi)*t)+A/2;
    y2= (B/2)*square((freq/2*pi)*t+pi)+B/2;
    y3=(1-exp(-alpha*t));
    s=y1+y2.*y3;

Discussions similaires

  1. Equation diff
    Par invitecebe23e1 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 25/09/2008, 13h22
  2. [Matlab] Résoudre une équation diff à pas fixe.
    Par inviteaf2e78df dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 10/01/2008, 10h29
  3. Equation Diff
    Par invitee5b3bbc9 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 10/12/2007, 20h54
  4. Résolution système equa diff matlab
    Par invite5a7b7efd dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 19/06/2007, 11h22
  5. Equation diff ...
    Par invite40dcade0 dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 15/03/2007, 21h51