Metoda Rayleighova podílu

Transkript

Metoda Rayleighova podílu
Západočeská univerzita v Plzni
Fakulta aplikovaných věd
Metoda Rayleighova podílu
Semestrální práce z předmětu MATL
Adamec Miroslav
[email protected]
Plzeň 2004
1
Zadání
V zadání jsme měli splnit tyto body:
• Vytvořené funkce budou obsahovat nápovědu
• Funkce budou realizovány s proměnným počtem parametrů
• Bude ošetřeno zadání chybného počtu parametrů a chybné zadání jejich hodnot
• Vstupní data bude možno zadávat také ze souboru, pokud bude jeho jméno
zadáno jako parametr funkce
• Výstup bude možno zapsat do souboru, pokud bude jeho jméno zadáno jako
jeden z parametrů funkce
• Pokud nebude funkce přiřazena proměnné, pak se vypočtené hodnoty zobrazí
graficky
• K celé práci bude vypracován referát
• Povinná hlavička hlavní funkce: function varargout = jmeno(varargin)
Danou funkci jsme si pak měli sami vymyslet. Já si vybral výpočet dominantního
vlastního čísla pomocí metody Raleighova podílu z matice A.
1.1
Hlavička hlavního programu
RALEY(e,n,infile,outfile);
% e.........epsilon (zastavovaci podminka)
% n.........rad matice A (pri nacteni ze souboru max rad 10)
% infile....vstupni soubor pro nacteni matice A (nepovinny parametr)
% outfile...vystupni soubor pro zapis vysledku (nepovinny parametr)
%
% [A,l]=RALEY(e,n,infile,outfile);
% Funkce vrati matici A a jeji dominantni cislo l
% Pokud je psana funkce bez vystupnich promenych zobrazi se vysledek
% graficky
2
Popis metody Raleighova podílu
Předpoklady
1. A má n-lineárně nezávislých vektroů
2. jediné dominantní vlastní číslo
3. vlastní čísla lze seřadit |λ1 | ≥ |λ2 | ≥ |λ3 | . . . |λn |
4. A je symetrická (reálná)
Potom musí být vlastní vektory ortonormální, tj.
(viT vj = 0 pro i 6= j a viT vi = 1)
2
Po odvození dostáváme:
T
T
y (k) Ay (k)
y (k) y (k+1)
λ1 = lim
=
lim
T
T
k→∞ y (k) y k
k→∞ y (k) y (k)
Poznámka: Tk k konvergují k nule (pro k → ∞) zhruba dvakrát rychleji než k ⇒
metoda Raleighova podílu bude rychlejší než mocninná metoda.
Příklad: Metodou Raleighova podílu určete dominantní vlastní číslo matice A, kde


1 1 0
A =  1 1 1  y (0) = [1; 1; 1]T .
0 1 1
Řešení:
3
(1)
y (1) = [2; 3; 2]T
λ1 =
y (2) = [5; 7; 5]T
y (3) = [12; 17; 12]T
λ1 =
(3)
λ1 =
(2)
T
y (0) y (1)
≈ 37 ≈ 2, 3333
T
y (0) y (0)
41
≈ 2, 4117
17
60+119+60
= 239
≈ 2, 41417
25+49+25
99
Popis programu
K programu jsou potřeba následující soubory:
raley.m
hlavní program
nacti A.m
funkce pro ruční načtení matice A
zapis vyst.m funkce pro výstup do souboru
data.dat
vstupní soubor, pokud se nenačítá ze souboru není potřeba
vyst.dat
výstupní soubor, lze napsat i jiný název souboru, používá se
při výstupu do souboru
Program se spustí po příkazu RALEY(e,n,infile,outfile). Raley je název hlavní
funkce.
e(epsilon) je zastavovací podmínka metody (např.0, 001).
n slouží k určení řádu matice A. Při ručním vstupu z klávesnice není řád matice
omezen, při načtení ze souboru sem stupeň omezil na maximální hodnotu 10.
infile je nepovinný parametr. Je určen k načtení ze souboru (zadává se název
vstupního souboru). Pokud parametr vynecháme, matici A musíme načíst ručně.
Vstupní soubor by měl obsahovat matici A
outfile je parametr pro výstup do souboru (opět se zadává název výstupnho souboru). Do souboru se zapíše matice A a její dominantní vlastní číslo. Nezvolíme-li
výstup do souboru, vidíme výsledek na monitoru.
Pokud spustíme program takto [A,l]=RALEY(e,n,infile,outfile), tak se matice A přiřadí do proměnné A a její dominantní vlastní číslo do proměnné l.
Pokud program spustím jako v prvním případě, výsledek se zobrazí do grafu.
3

Podobné dokumenty

Implementace hry „Had“ (angl. Snake) pomocí GUI

Implementace hry „Had“ (angl. Snake) pomocí GUI jednoho barevného políčka), barva pozadí, barva hada a barva potravy. Po spuštění skriptu se objeví okno, ve kterém je jak herní pole, ve které se nachází had ve své výchozí pozici, tak i potrava. ...

Více

Matlab05 (431kB

Matlab05 (431kB všechny proměnné z funkcí ve kterých je vnořena. Je-li např ve funkci A v příkladu proměnná x, může s ní vnořená funkce C pracovat. 5.4.3 Privátní funkce Privátní funkce jsou funkce které jsou umís...

Více

MATLAB ver. 5

MATLAB ver. 5 nebo y jsou nenulové (True). Vrací hodnotu False (0), kde jak x tak i y jsou nulové (False), nebo jsou oba nenulové (True). Vrací hodnotu True (1), jestliže alespoň jeden prvek vektoru x je nenulov...

Více

Technologie výroby číslicových obvodů

Technologie výroby číslicových obvodů zatímco na kolektoru T2 potenciál klesne tak, že předpětí pro T3 z důvodu úbytku napětí na diodě D nestačí T3 vybudit a T3 se uzavře. Na výstupu se přes T4 objeví potenciál blízký 0 V (úroveň logic...

Více

ZXM 91_02 - ZX Magazín

ZXM 91_02 - ZX Magazín MGF vstupu naprázdno z adresy 254 dostáváme 191, což odpovídá novějším typům ULA. Kvůli tomu nechodí některé programy, např. SLOWLOADER, naštěstí' lze tuto vlastnost nebo c h c e t e - l i chybu do...

Více

Objektově orientované programování II OBOP2

Objektově orientované programování II OBOP2 vrací aktuální indikátor pozice v aText vrací true, je-li aText prázdný nastavuje indikátor pozice a délku aText na 0 přidá text na který odlazuje r[] na konec aText přidá text na který odkazuje r[...

Více

Fractions - Uzivatelský manuál

Fractions - Uzivatelský manuál Je-li volba zapnutá [X], program se po zadánı́ přı́kazu k počı́tánı́ nebude dotazovat na výraz, který chcete počı́tat, ale načte si výraz ze souboru input.txt. Do tohoto souboru můžete ...

Více

USB interface

USB interface Připojí PC Trainer, stiskněte tlačítko na interfejsu a interfejse připojte k USB portu. Tlačítko uvolněte. Tím je dán povel interfejsu k tomu, aby začal novou kalibraci. Poté je třeba všemi pákovým...

Více

MATEMATIKA I

MATEMATIKA I Řekneme naopak, že vektory ~u , ~v jsou nekolineární, když rovnice k~u+l~v = ~o je splněna pouze tehdy, když k = 0 a současně l = 0. Příklad 1.1.1 Vektory ~x1 , ~x2 = −2~x1 jsou kolineární, protože...

Více