2. Zh megoldások

Contents

Első feladat

Írjunk ketFelenKozelit nevű polimorf függvényt aminek ha két beme- nete (n,k) van akkor az x + cos(x) + 1/2 cos(2x) + 1/3 cos(3x) függvényt közelíti spline-al a [0,2]-őn n pontban, és k-ad fokú polinommal közelí- ti 10 pontban a [2,4]-en. Ha a harmadik bemenet ’forditva’ akkor az intervallumokat fordítsa meg (és [2,4]-en közelítsen spline-nal és [0,2]-őn polinommal). Ábrázoljuk a közelítést mindkét intervallumon egyszerre!

type('ketFelenKozelit.m')
function ketFelenKozelit(n,k,mod)
    if nargin ==3 && strcmp(mod,'forditva')
        xspl=linspace(2,4,n);
        tspl=linspace(2,4);
        xpol=linspace(0,2,10);
        tpol=linspace(0,2);
    else
        xspl=linspace(0,2,n);
        tspl=linspace(0,2);
        xpol=linspace(2,4,10);
        tpol=linspace(2,4);
    end
    yspl=xspl+cos(xspl)+(1/2)*cos(2*xspl)+(1/3)*cos(3*xspl);
    ypol=xpol+cos(xpol)+(1/2)*cos(2*xpol)+(1/3)*cos(3*xpol);
    eho=polyfit(xpol,ypol,k);
    plot(tspl,spline(xspl,yspl,tspl),tpol,polyval(eho,tpol))
end
ketFelenKozelit(4,4)
ketFelenKozelit(5,6,'forditva')

Második feladat

Generáljunk 1000 darab véletlen egész számot 1 és 10 között. Számítsuk ki ezeknek az átlagát és szórását! Végezzünk T-próbát arra nézve, hogy ezen vektor várható értéke megegyezik-e 5,5-el! Interpretáljuk a használt függvény kimenetét: mekkora a p-érték, mire döntünk és mikor (milyen szignifikancia szinten) változtatnánk a döntésünkön?

randvekt=randi(10,1,1000);
[h,pertek]=ttest(randvekt,5.5)
% Mivel pertek nagyobb mint 5% ezért a H0-t fogadjuk el vagyis a várható
% értéke megegyezik 5,5-el!
% Ha a szignifikancia szint nagyobb lenne mint a pertek akkor arra
% döntenénk, hogy különböznek
h =

     0


pertek =

    0.9566

Harmadik feladat

hug=[2, 3, 3, 2, 4, 5, 5, 1, 0, 2, 5, 2, 4, 2];
mar=[1, 1, 2, 1, 3, 1, 2, 4, 2, 3, 3, 2, 0, 3];
[h,pertek]=ttest2(mar,hug)
h =

     0


pertek =

    0.1061

Nem különböznek, mert a p-érték nagyobb mint 5%. Ha a szignifikancia szint 10,61%-nál nagyobb lenne akkor döntenénk úgy, hogy különböznének.

Negyedik feladat

Írjunk palindromE(s) függvényt ami eldönti egy adott s karakter vektorról, hogy palindrom-e (ehhez hagyjuk figyelmen kívül a space-eket és irásjeleket). (Bónusz: hagyjuk figyelmen kívül a kis és nagybetűt is.)

type('palindromE')
function ki=palindromE(s)
    csakbetuk=s(isletter(s));
    if strcmpi(csakbetuk,csakbetuk(end:-1:1))
        ki=true;
    else
        ki=false;
    end
end
s1='keretkarakterek';
s2='indul a görög aludni.';
s3='Indul a görög aludni.';
palindromE('Haha')
ans =

  logical

   0

palindromE(s1)
ans =

  logical

   1

palindromE(s2)
ans =

  logical

   1

palindromE(s3)
ans =

  logical

   1

Ötödik feladat

A ’T2.xlsx’ fájl 40 függvény adatait tartalmazza. Az első oszlop tartal- mazza az alappontokat, a többi oszlop a függvények ezen alappontokban számított értékeit. Ábrázoljuk a 40 függvényt egy ábrán.

[szam,szoveg,mind]=xlsread('T2.xlsx');
for i=1:100
    for j=1:40
        M(i,j)=str2num(mind{i,j});
    end
end
plot(M(:,1),M(:,2:end))

Szorgalmi feladat:

A 5. feladatban a 40 függvényt ábrázoljuk egy darab (keve- sebb mint 80 karkater hosszú) paranccsal, valamint egy ábrán ábrázoljuk a 40 függvény minimumát.

plot(M(:,1),min((M(:,2:end))'))