Matlab
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Matlab



  1. #1
    Rafaf

    Question Matlab


    ------

    Bonsoir tout le monde ,
    j'ai un vecteur x(t) =(1,y(t-1),....,y(t-p)),

    je l'ai déjà ecrire sous matlab mais tout le temps il m'afiche tout le temps 1 (la premier ligne)
    Nom : Capture.PNG
Affichages : 47
Taille : 1,1 Ko
    j'ai déjà calculé le vecteur y

    -----

  2. #2
    Paraboloide_Hyperbolique

    Re : Matlab

    Bonsoir,

    Quelles sont les valeurs des variables t et p ?

  3. #3
    Rafaf

    Re : Matlab

    p=5 et t=1:n ou n c'est la taille de y n=50
    (les valeur sont aléatoire on peut les changer )

  4. #4
    invite73192618

    Re : Matlab

    Ce serait mieux en programmation, avec ton programme complet en utilisant les balises code.

  5. A voir en vidéo sur Futura
  6. #5
    Paraboloide_Hyperbolique

    Re : Matlab

    Citation Envoyé par Rafaf Voir le message
    p=5 et t=1:n ou n c'est la taille de y n=50
    (les valeur sont aléatoire on peut les changer )
    Ok. Vous êtes certains que t doive être un vecteur ? (En matlab c'est en général inhabituel pour un indice mais c'est permis).

    Quoiqu'il en soit, t-1 donne le vecteur d'indices [0, 1, ..., n-1]. En écrivant y(t-1) vous demandez les valeurs de y d'indices 0, 1, ..., n-1. Or, en Matlab, le premier indice d'un vecteur/matrice/tenseur commence à 1.

  7. #6
    invite73192618

    Re : Matlab

    ("0, 1, ..., n-1" => "1, 2, ..., n") == (python =>matlab)

  8. #7
    Rafaf

    Re : Matlab

    Code:
    function[tita,sigma]=Est2(y,r,d,p)
    n=length(y);%n=size(y,1);
    R=zeros(n,1);
    t0= max(max(p),d)+1;
    x=zeros(n,n);
    tita=zeros(max(p)+1,2);
    if (y(t0-d)>r(1)) && (y(t0-d)<=r(2))
        test =1;
    else
        test=0;
    end
    %**********************************************************************
    if test==0
        for t=t0:n
            if y(t-d)<=r(1)
                R(t)=1;
            elseif y(t-d)>r(2)
                R(t)=0;
            else
                R(t)=R(t-1);
            end
            for j=1:2
                for i=1:p(j)
                    if i==1
                        x1(i)=1;
                        x2(i)=1;
                    else x1(i)=R(t)*(y(t-(p(1)+1-i)));
                        x2(i)=(1-R(t))*( y(t-(p(2)+1-i)));
                    end
                end
            end
            z=[x1 x2];
            z=x(t,:);
        end
        X=x(t0:end,:);
        Y=y(t0:end);
        tita=(inv(X'*X))*(X'*Y);
    else
        R1=zeros(n,1);
        R2=zeros(n,1);
        for t=t0:n
            if t==t0
                R1(t)=1;
            else
                if y(t-d)<=r(1)
                    R1(t)=1;
                elseif y(t-d)>r(2)
                    R1(t)=0;
                else
                    R1(t)=R1(t-1);
                end
            end
            for j=1:2
                for i=1:p(j)
                    if i==1
                        x1(i)=1;
                        x2(i)=1;
                    else x1(i)=R(t)*(y(t-(p(1)+1-i)));
                        x2(i)=(1-R(t))*( y(t-(p(2)+1-i)));
                    end
                end
            end
       
        X1=x(t0:end,:);
        Y=y(t0:end);
        tita1=(inv(X1'*X1))*(X1'*Y);
        for t=t0:n
            if t==t0
                R2(t)=0;
            else
                if y(t-d)<=r(1)
                    R2(t)=1;
                elseif y(t-d)>r(2)
                    R2(t)=0;
                else
                    R2(t)=R2(t-1);
                end
            end
            x1=R2(t)*[1 y(t-1:t-p(1))];
            x2=(1-R2(t))*[1 y(t-1:t-p(2))];
            x(t,:)=[x1 x2];
        end
        X2=x(t0:end,:);
        tita2=(inv(X2'*X2))*(X2'*Y);
        Erreur1=(Y-(X1*tita1))'*(Y-(X1*tita1));
        Erreur2=(Y-(X2*tita2))'*(Y-(X2*tita2));
        if Erreur1<Erreur2
            tita=tita1;
            R=R1;
            X=X1;
        else
            tita=tita2;
            R=R2;
            X=X2;
        end
    end
    epsilon1=((R(t0:end).*Y)-(X*tita));
    sigma(1)=(1/sum(R))*(epsilon1'*epsilon1);
    epsilon2=((ones(n-t0+1,1)-R(t0:end)).*Y)-(X*tita);
    sigma(2)=(1/((n-t0+1)-sum(R)))*(epsilon2'*epsilon2);
    A=zeros(max(p),2);
    A(1:p(1)+1,1)=tita(1:p(1)+1);
    A(1:p(2)+1,2)=tita(p(1)+2:end);
    tita=A;
    end
    Dernière modification par Rafaf ; 18/06/2019 à 20h47.

  9. #8
    invite73192618

    Re : Matlab

    Je ne vois pas la ligne indiquée fautive au post #1? Si elle a disparu, quel est maintenant la ligne fautive? STP mettre un whos pour voir les dimensions des variables au moment du bug, et indiquer le message d'erreur s'il y en a. (s'il n'y en a pas, STP indiquer quand même les dimensions des variables au début et au final)

Discussions similaires

  1. [Programmation] MATLAB.SIMULINK,[Embedded Matlab function]
    Par soumati23 dans le forum Électronique
    Réponses: 0
    Dernier message: 08/05/2016, 14h11
  2. [MATLAB] Problème avec MATLAB Compiler
    Par Noelie123 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 11/03/2016, 11h20
  3. [matlab] programmation : peut-on générer un arbre des fonctions d'un code Matlab ?
    Par bratisla dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 09/07/2015, 11h12
  4. [Matlab]Problème d'optimisation Abaqus/Matlab
    Par Saroute dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 08/04/2015, 18h54
  5. MATLAB: acquisition de donnée via une interface graphique matlab
    Par inviteaeee671e dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 08/05/2011, 17h54