Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/10/2006, à 22:01

dialloma

problème avec quad sous octave

Bonjour à tous,

Je travail sous Matlab à la fac et chez moi j'ai envie de continuer mes TP. Comme je n'ai pas Matlab sous windows chez moi, je veux travail sous Linux, mon prof m'a conseillé Ovtave qui est un clone de Matlab, je l'ai installé sans faute (je suis sous Xubuntu). Mais aujourd'hui, j'ai fais un programme sous Matlab à la fac et arrivée chez moi, quand j'ai essayé de travaillé sous octave, mon programme ne marche plus. En fait Octave ne me reconnais pas la focntion quad (pour le calcul intégrale). J'ai un errreur du genre:

octave:9> resolve()
error: octave_base_value::double_value (): wrong type argument `function handle'
error: quad: evaluation of user-supplied function failed
error: evaluating binary operator `*' near line 40, column 44
error: evaluating binary operator `+' near line 40, column 39
error: evaluating assignment expression near line 40, column 27
error: evaluating for command near line 39, column 13
error: evaluating for command near line 25, column 5
error: called from `resolve'

Ma fonction s'appelle resolve() et les fonctions f et g sont définies dans d'autres fichiers.

Mon problème est que est ce que je dois installer d'autres library de Octave pour qu'il me reconnaisse la fonction quad, oubien y a une manip à faire ?

Voici le code de ma fonction resolve():

function res = resolve()

    clear all
    
    x_min = -3; 
    x_max = 3; 

    t_min = 0; 
    t_max = 5; 

    delta_x = .01; 
    delta_t = .05;         

    x = x_min:delta_x:x_max;
    int_t = t_min:delta_t:t_max;


    u = g(x);
    uprime_t = h(x);

    U=[];

    y_min=min(u); y_max=max(u);

    for t = int_t
       
            U=[U; u];

            figure(1);
            plot(x, u);
            axis([x_min x_max y_min y_max]);
            title(['t = ',num2str(t), 's.']);
            pause(0.1);

            t = t + delta_t;
       
            u = 0.5*(g(x+t) + g(x-t));
            integrale = 0; %initialisation
            for i=1:size(x)
                integrale = integrale + 0.5*quad(@h, x(i)-t, x(i)+t); %l'int�rale
            end
            u = u + integrale;
            
    end

    mesh(x, int_t, U);
    figure(2);
    [X,Y]=meshgrid(x,int_t);
    surfc(X,Y,a(X,Y));


end

Help me please.

Merci d'avance

Hors ligne

#2 Le 25/10/2006, à 21:44

dialloma

Re : problème avec quad sous octave

Aidez moi s'il vous plait !!!

Merci

Hors ligne