% hakta
% EQA3YM

t = linspace(1.1, 13.2, 425);
f = @(x) x .* exp(x .* sin(x));
y = f(t);

% [7.5; 8.41] zárt értelmezési tartomány pontjai
reszTart = t( (7.5 <= t) & (t <= 8.41) );
reszErtek = reszTart .* exp(reszTart .* sin(reszTart));
fprintf('\n\tA [7.5; 8.41] résztartomanyba %g adatpont esik.\n', length(reszTart))
% maximumérték és -hely
maxErtek = max(reszErtek);
maxHely = t( y == maxErtek);
fprintf('\tA megadott intervallumon a maximum helye: %5.3f, és értéke: %9.3f\n', maxHely, maxErtek)

% [12.0; 13.0] zárt értelmezési tartomány pontjai
reszTart = t( find((12 <= t) & (t <= 13)) );
reszErtek = reszTart .* exp(reszTart .* sin(reszTart));
fprintf('\n\tA [12.0; 13.0] résztartomanyba %g adatpont esik.\n', length(reszTart))

% Másod- és harmadrendű polinom illesztése
masodEgyutthatok = polyfit(reszTart,reszErtek,2);
harmadEgyutthatok = polyfit(reszTart,reszErtek,3);
% Polinomok kiértékelése
x = linspace(11, 14, 112);
masodErtek = polyval(masodEgyutthatok, x);
harmadErtek = polyval(harmadEgyutthatok, x);
% Kirajzoltatás
figure
subplot(2,1,1)
hold on
plot(x, masodErtek, 'b', 'LineWidth', 1.5)
plot(x, harmadErtek, 'r', 'LineWidth', 1.5)
title('"A" feladat', 'FontSize', 24)
xlabel('[11; 14] zárt intervallum', 'FontSize', 12)
ylabel('függvényértékek', 'FontSize', 12)

% másodrendű polinom integrálása integral függvénnyel
int = integral(f, 11.8, 12.8);
fprintf('\n\tA masodfokú polinomfüggvény görbe alatti területe a [11.8, 12.8] értéktartomanyban: %7.3f\n', int(end))

% Numerikus derivált [12.0, 12.8] intervallumon
xLogikai = (12.0 <= x & x <= 12.8);
xErtekek = x(xLogikai);
dx = diff(xErtekek);
dy = diff(harmadErtek(xLogikai));
derivalt = dy ./ dx;
subplot(2,1,2)
plot(xErtekek(1:end-1), derivalt,'g-', 'LineWidth', 1.5)
title('Derivált', 'FontSize', 24)
xlabel('[12.0; 12.8] zárt intervallum', 'FontSize', 12)
ylabel('derivált függvény értékei', 'FontSize', 12)
axis([12.0 12.8 -1500 4500])


