Anonymní profil Celtian – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Celtian – Programujte.comAnonymní profil Celtian – Programujte.com

 

Příspěvky odeslané z IP adresy 86.61.210.–

Celtian
Matematika › Aproximace plochy pomocí MNČ
14. 12. 2014   #197253

[b]Zadání:[/b]

V souborech:
 http://m37.fsv.cvut.cz/numgeo/dt1.txt.bz2
 http://m37.fsv.cvut.cz/numgeo/dt2.txt.bz2
 http://m37.fsv.cvut.cz/numgeo/dt3.txt.bz2
 http://m37.fsv.cvut.cz/numgeo/dt4.txt.bz2
 jsou ulozena data, jde o body na plose.
 1.radek - pocet udaju
 2.radek a dalsi trojice realnych cisel se souradnicemi bodu
 
 Vasim cilem je nalezt aproximaci dodane plochy pomoci metody nejmensich ctvercu.
 Je treba dosahnou velikosti normy chyby mensi nez 0.01.
 Mate na vybranou z sesti variant.
  1. Klasicky polynom dvou promennych
  2. Zvolit vhodnou triangulizaci a
     na ni hledat spojitou po castech linearni funkci
  3. Zvolit vhodnou triangulizaci a
     na ni hledat spojitou po castech kvadratickou funkci
  4. Zvolit rozdeleni na pravouhelniky a hledat 
     spojitou po castech bilinearni funkci
  5. Zvolit rozdeleni na pravouhelniky a hledat 
     spojitou po castech bikvadratickou funkci
  6. Nalezt aproximaci pomoci trigonometrickych polynomu

[b]Přibližný postup (zvolil jsem si 3. variantu)[/b]

1. Vytvořím pravidelnou si trojúhelníkovou síť.
2. Rozdělím data do trojúhelníků.
3. Aproximuji každý trojúhelník metodou MNČ

% báze:
u1 = 1
u2 = x
u3 = y
u4 = x*y

% matice planu
A(1,1) = A(1,1) + 1*1;
A(2,2) = A(2,2) + x(i)*x(i);
A(3,3) = A(3,3) + y(i)*y(i);
A(4,4) = A(4,4) + x(i)*y(i);
A(1,2) = A(1,2) + 1*x(i);
A(2,1) = A(1,2);        
A(1,3) = A(1,3) + 1*y(i);
A(3,1) = A(1,3);        
A(1,4) = A(1,4) + 1*x(i)*y(i);
A(4,1) = A(1,4);        
A(2,3) = A(2,3) + x(i)*y(i);
A(3,2) = A(2,3);        
A(2,4) = A(2,4) + x(i)*x(i)*y(i);
A(4,2) = A(2,4);        
A(3,4) = A(3,4) + y(i)*x(i)*y(i);
A(4,3) = A(3,4);
% vektor mereni
b(1,1) = b(1,1) + 1*z(i);
b(2,1) = b(2,1) + x(i)*z(i);
b(3,1) = b(3,1) + y(i)*z(i);
b(4,1) = b(4,1) + x(i)*y(i)*z(i);

% vlastni MNČ
h    = inv(A'*A)*A'*b;
v    = A*h - b;

4. Vypočtu chybu v každém z nich a vydělím ji plochou trojúhelníka

err  = sum(v'*v)/plocha;

 - pokud je překročena hodnota 0.01, tak do daného trojúhelníka vložím (sousední trojúhelníky, ale musím rozdělit na polovinu a také u nich provést znovu aproximaci pomocí MNČ)

5. Nyní mám pro každý trojúhelník plochu, ale nevím jak z tohoto získám spojitou plochu?

 - něco jsem zaslechl, že na to mám znovu nasadit MNČ, ale nevím jak
 - k dispozici mám matici plánu pro každý trojúhelník

Nikde nemůžu nic o tomto problému najít najít. Pokud je nějde řešena aproximace, tak bez rozdělení na trojúhelníky.

Předem děkuji za jakoukoliv pomoc.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý