Informatika1-2016/HF5

A MathWikiből

Octave házi feladat (3 pont)

Mielőtt a beadandó házi feladat megoldásához kezdenétek, végezzétek el a következő lépéseket, melyek segítenek a feladat megoldásában!

Adjatok pozitív egész értéket egy változónak, pl.

>> n = 4

Nézzétek meg mi történik a pascal(n) és a pascal(n,-1) parancsok hatására! Állítsatok elő egy n\times(2n) méretű mátrixot, melynek első blokkja egy Pascal-háromszög (alsó háromszögmátrix), mellette egy egységmátrix, azaz például n = 4 esetén

  1   0   0   0   1   0   0   0
  1   1   0   0   0   1   0   0
  1   2   1   0   0   0   1   0
  1   3   3   1   0   0   0   1

Nevezzétek el e mátrixot P-nek. Ezután képezzetek egy n-dimenziós b vektort, melynek elemei 2-hatvány plusz 1 alakúak 20 + 1-től indulva, például esetünkben

  2
  3
  5
  9

Aki kicsit utánaszámol, láthatja, hogy a \mathbf{Px}=\mathbf b egyenletrendszer megoldható, egy megoldása a csupa 1-esből álló vektor. Határozzátok meg ennek a sortérbe eső egyetlen megoldását (mátrixosztás!). Az összes megoldáshoz meg kell még határozni a nullteret kifeszítő vektorokat. Ezt az octave a

null(P) 

paranccsal megadja.

Végül a beadandó feladat: Írjatok egy függvényt, melynek egyetlen paramétere n, és amely válaszul kiírja a fenti egyenletrendszer egyetlen sortérbe eső megoldását és a nullteret generáló vektorok mátrixát abban az esetben, ha n < 8. Ha n\ge8, a program csak annyit írjon ki, hogy "Túl nagy adat!". Például n = 4 esetén

  1.3333e+00
  1.3333e+00
  1.0000e+00
  3.3333e-01
  6.6667e-01
  3.3333e-01
  4.4409e-16
  3.3333e-01
 -0.616696  -0.106047  -0.043625   0.021813
  0.399665  -0.409452  -0.144854  -0.010906
 -0.165320   0.570204  -0.172812  -0.163594
 -0.067442  -0.293872   0.778499  -0.389249
  0.616696   0.106047   0.043625  -0.021813
  0.217031   0.515499   0.188479  -0.010906
 -0.017314   0.354746   0.506146   0.163594
 -0.018896  -0.082339   0.218125   0.890937

Formai követelmények:

  • A megoldást egy .m kiterjesztésű szövegfájlban küldjétek el. Igyekezzetek a szövegfájlt a program értelme szerint formázni 2 szóközzel beljebb húzva a sorokat (ez nem kötelező). Például így:
function ...
  if ...
    ...
  else
    ...
  endif
endfunction

  • A fájl a feladatban kitűzött egyetlen függvény definícióját tartalmazza és semmi mást! (pl. ne legyen benne prompt sem, azaz >>)
  • A fájl végén legyen egy üres sor.
  • A fájl neve a következő formátumú legyen:
T<tankör>_HF5_<felhasználónév>.m

Beadási határidő: TBD

Tanács:

  • A megoldas függvény belsejében minden parancsot pontosvesszővel (;) zárjunk le.
  • Aki nem telepítette az octave-ot, az megoldhatja a feladatot otthonról a Putty-al, belépve a leibniz-re és ott használva az octave-ot és WinScp-vel szerkesztve a beküldendő fájlt. Teszteléshez használhatjuk az octave-ot parancssorból így:
borbely@leibniz:~$ octave T0_HF5_borbely.m
Személyes eszközök