%%
%% Listing 7.7 w książce "Obliczenia inżynierskie i naukowe", PWN 2011
%% (C) Piotr Krzyżanowski, 2011
%%
%% Możesz używać tego kodu zgodnie z licencją Creative Commons BY-SA, 
%% zob. http://creativecommons.org/licenses/by-sa/3.0/pl/
%%

R 	= physical_constant('MOLAR_GAS_CONSTANT'); % tylko Octave-forge; 
% w MATLAB-ie wpiszemy R = 8.314472;
a 	= 0.3640e-12; 	% stałe dla ditlenku węgla
b 	= 42.67e-6;

T 	= 303;		% temperatura
P 	= 1.0133e5;	% ciśnienie	
N 	= 0.22722;	% liczba moli gazu

V0 = N*R*T/P % objetosc gazu idealnego z rownania Clapeyrona

vdw = @(V) (P+(N^2*a)./(V.^2)).*(V-N*b)-N*R*T;

[V, FV, info, output, fjac] = fsolve(vdw, V0)

%{
% wariant z fzero
[V, FV, info, output] = fzero(vdw, V0);

% wariant z wyznaczeniem miejsc zerowych wielomianu
polyvdw = [P, -N*(b*P+R*T), N^2*a, -N^3*a*b];
V = roots(polyvdw)
%}
