Interpolazione_Dati_Sperimentali

di il
2 risposte

Interpolazione_Dati_Sperimentali

Salve a tutti. Chiedo scusa in anticipo per le castronerie che probabilmente scriverò
e ringrazio chi vorrà rispondermi.
Dispongo di un set di dati sperimentali che allego.
La prima colonna sta ad indicare il tempo di prova mentre la seconda la deformazione(di un certo provino) al tempo corrispondente.
Non tenete conto della terza colonna (strain) che invece non mi serve (al momento).
Rappresento i dati sperimentali come segue:

A=dlmread('time_epsilon_strain_25N.txt')        % leggo la matrice da file

time=A(:,1)                                                    % formo vettore tempo da matrice A

epsilon=A(:,2)                                                % formo vettore deformazione da matrice A

scatter(time,epsilon,20)                        % plottaggio punti sperimentali
xlabel('time')
ylabel('epsilon')
title('Linoleum  25N')

La rappresentazione dovrebbe essere proprio quella che ottengo perciò fin qui nessun problema
Quel che dovrei fare a questo punto nota l'equazione
epsilon(t)=sigma_0/E + (sigma_0/eta)t
è determinare il valore di eta (forse con un ciclo for ) perché la curva interpolante si avvicini il più possibile ai punti sperimentali.
Sono noti sigma_0 ed E.
Credo di dover a tal proposito definire una sorta di errore ammissibile. Non so però come fare e che errore definire.
Ho pensato al metodo dei minimi quadrati ma non credo vada bene per lo scopo (se sbaglio ovviamente ditemelo ).
Help me pls

2 Risposte

  • Re: Interpolazione_Dati_Sperimentali

    Queste sono le righe di codice che ho steso.
    Il ragionamento di base dovrebbe essere corretto.
    Il metodo è assai "rudimentale": manualmente vario il parametro eta fin quando l'errore non è inferiore o uguale a quello scelto da me arbitrariamente.
    Se la condizione non è soddisfatta perché me ne accorga stampo "non va bene".
    Ho poi rappresentato la funzione che dovrebbe approssimare i dati sperimentali salvando di volta in volta la variabile y_appr in "vettore" (ovviamente in posizioni diverse).

    Cosa ne dite? Vi sembra corretto il modo di procedere? Si può fare di meglio(certamente )?
  • Re: Interpolazione_Dati_Sperimentali

    Queste sono le righe di codice che ho steso.
    
    A=dlmread('time_epsilon_strain_25N_PP.txt');        % leggo la matrice da file
    
    time=A(:,1);                                     % formo vettore tempo da matrice A
    
    epsilon=A(:,2);                                  % formo vettore tempo da matrice A
    
    sigma_0=3.125;                                   % sforzo 
    
    E=13000;                                         % modulo elastico(valore da sostituire da quello ricavato in laib)
    
    
    eta = 5500;  %viscosità
    vettore=[1:200]; 
    j=1;
    for i = 0:1:199
      x = time(1+i);
      y = epsilon(1+i);
      y_appr = sigma_0/E + (sigma_0/eta)*x;
      errore = abs(y-y_appr)
      vettore(j)=y_appr;
      j=j+1;
      if errore>0.08    
          fprintf('non va bene')
      end
      
    end
    
    scatter(time,epsilon,20) ;                       % plottaggio punti sperimentali
    xlabel('time');
    ylabel('epsilon');
    title('Linoleum  25N');
    hold on
    plot(time,vettore)
    
    Il ragionamento di base dovrebbe essere corretto.
    Il metodo è assai "rudimentale": manualmente vario il parametro eta fin quando l'errore non è inferiore o uguale a quello scelto da me arbitrariamente.
    Se la condizione non è soddisfatta perché me ne accorga stampo "non va bene".
    Ho poi rappresentato la funzione che dovrebbe approssimare i dati sperimentali salvando di volta in volta la variabile y_appr in "vettore" (ovviamente in posizioni diverse).

    Cosa ne dite? Vi sembra corretto il modo di procedere? Si può fare di meglio(certamente )?
Devi accedere o registrarti per scrivere nel forum
2 risposte