%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%                                                                    %%%
%%%      GENESIS - Temperature Generation Prototypes, v0.9 (BETA)      %%%
%%%      --------------------------------------------------------      %%%
%%%      Harris Georgiou - mailto:xgeorgiou@yahoo.com                  %%%
%%%                                                                    %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


clear all;

disp('Temperature Generator, v0.9B - Harris Georgiou (c) 2001');
disp(' ');

Ay = 10;	% half-range of year-day curve
By = 365;	% days per year
Cy = 240;	% horizontal (day) offset of year-day curve
Dy = 21;	% vertical (temp) offset of year-day curve

Ad = 7;		% half range of day-hour curve 
Bd = 24;	% hours per day
Cd = -4;	% horizontal (hour) offset of day-hour curve
Dd = 0;		% vertical (temp) offset of day-hour curve

Ar = 0.5;	% half-range of per-hour random temp factor

yh = 1:By*Bd;
Ty = Ay*sin(2*pi/By*(yh/Bd+Cy))+Dy;
Td = Ad*sin(2*pi/Bd*(yh+Cd))+Dd;
for i=1:By*Bd, Th(i) = Ar*randn; end;

T=Ty+Td+Th;

figure(1);
plot(Ty);
title('Temperature - year/day component curve');
axis([0 240 -10 30]);

figure(2);
plot(Td);
title('Temperature - day/hour component curve');
axis([0 240 -20 20]);

figure(3);
plot(Th);
title('Temperature - hour/random component curve');
axis([0 240 -20 20]);

figure(4);
plot(T);
title('Temperature - combined curve');
axis([0 240 -10 30]);

figure(5);
plot(T);
title('Temperature - full year analysis');
axis([0 9000 0 40]);

disp('Temperature MIN value:');
min(T)
disp('Temperature MAX value:');
max(T)

    Source: geocities.com/genesis_proj