Bonjour,

Dans le cadre d'un travail j'aurais aimé trouver une valeur d'une constante pour un processus d'adsorption de molécules (ça c'est le contexte).

Le souci est que je ne dispose pas de toutes les équations et je récupère les données d'un des paramètres (la contrainte) à partir de valeurs prises sur un graphe que j'extrapole (avec un polyfit polyval ). Tout bête.. oui mais ça fait très très longtemps que je n'ai plus utilisé matlab. Et j'ai deux soucis :
  1. J'ai une zone de singularité aux alentours de 0.0827 ce que je ne comprends pas vraiment
  2. Si je ne change absolument rien dans mon code, et que je le plotte avec un linscape de 0 à 1 ou de 0 à 7, pour une même valeur de x, mon y a des valeurs différentes (jusqu'à 7 fois plus grandes!)

Et il me lance un null pointer exception, je ne sais pas trop d'où ça vient.

A toutes fin utiles, je mets le code. Je n'attends pas qu'on me donne le code à faire (sans le contexte et les équations ça me semble compliqué) mais j'aimerais savoir pourquoi changer le linscape change mes valeurs....

Un immense merci!

Code:
clear all
clc

%Calcul pour la valeur de la contrainte

x_mbar = [2.01, 1.59];                      % attention données en mbar^{1/2}
x = sqrt((x_mbar.^2)./1013.25);             % données en atm^1/2
y = [ 76, 127.27].*(10^-3);                 % Contrainte en GPa
new_x = linspace(0,7);                      % pression en atm^1/2
coeffs1 = polyfit(x, y, 1);                 % on fait le polynome
new_y1_stress = polyval(coeffs1, new_x);    % on trouve la contrainte correspondante

%Calcul pour la valeur de n
x_stress = abs(new_y1_stress);                  % on remet tout en positif
y_n = x_stress.*(3*(1-0.39)/(121*0.19));        % calcul du n

%Obtention Ks methode Sievert
Ks_Sievert = new_x./y_n;

%Obtention Ks methode exp
Ks_exp = exp(0.5.*log(new_x.^2)-log(y_n./(1-y_n)));

%plot
figure
plot(new_x, Ks_Sievert, 'b-');
hold on
plot(new_x, Ks_exp, 'r-');
legend('Sievert derivation of Ks','Exponential derivation of Sievert')
title('Comparison between Sievert and exponential derivation of Ks.');
xlabel('Partial pressure p_{H_2} [atm^{1/2}]');
ylabel('Sievert constant Ks [atm^{1/2}]');