Portál AbcLinuxu, 1. května 2024 10:45


Dotaz: octave - pole

17.3.2011 01:49 Dadam | skóre: 12 | blog: dadamovo
octave - pole
Přečteno: 207×
Odpovědět | Admin
Zdravím, zkouším v Octave programovat tento fraktál. Zde je kód:

function latoocarfian (a, b, c, d, lps)
        %priklad: (-1.066, 2.089, 0.765, 0.744, 900000)
        scale = 1000.0;    % meritko
        pan = [400.0, 300.0]; % posun po bitmape
        width = 800;  % sirka bitmapy
        height = 600; % vyska bitmapy
        bmp = zeros(height, width);
        x1 = 0.1;
        y1 = 0.1;
        for i = 1:lps
                x2 = sin(b*y1)+c*sin(x1*b);
                y2 = sin(a*x1)+d*sin(y1*a);
                x1 = x2;
                y1 = y2;
                row = ceil(y1*scale+pan(2))+1;
                col = ceil(x1*scale+pan(1))+1;
                if (0 < row) & (row <= height) & (0 < col) & (col <= width)
                        bmp(row, col) += 1;
                end
                #tady kontroluju min a max
        end
        imagesc(bmp)
end
Problém je, že místo jakéhokoliv obrazu se mi vykreslí jen pár teček. V poli bmp mají hodnotu 1 (čímž se vylučují špatné parametry systému - pokud by se např. špatně zaokrouhlovalo a systém běžel jen v těch pár tečkách, měly by vysoké hodnoty). Na okomentovaném místě jsem si kontroloval minima a maxima indexů, zdály se v pořádku. Kde může být chyba? Jinak běží to docela dlouho, pro testování bych doporučil odstranit jednu až dvě nuly z počtu iterací (parametr lps).
A i B mají svoje výhody a nevýhody. Vyberte si to, co vám vyhovuje víc, a necpěte A tam, kam patří B.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

michich avatar 17.3.2011 09:45 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: octave - pole
Odpovědět | | Sbalit | Link | Blokovat | Admin
V poli bmp mají hodnotu 1 (čímž se vylučují špatné parametry systému - pokud by se např. špatně zaokrouhlovalo a systém běžel jen v těch pár tečkách, měly by vysoké hodnoty).
U mě má na konci po 90000 iteracích prvek bmp(301,401) hodnotu 88409.
17.3.2011 19:33 xmdude00
Rozbalit Rozbalit vše Re: octave - pole
Odpovědět | | Sbalit | Link | Blokovat | Admin
nebude problem v tom, ze prirazujete jen do prvku bmp(row, col) ?? Ten cyklus je rizeny promenou "i", ale v tom cyklu vubec nic nezavisi na "i"!! Zkuste treba neco ve smyslu x1= linspace(x_min,x_max,n_nodes); a v cyklu x2=konst*x1(i);
17.3.2011 20:03 xmdude00
Rozbalit Rozbalit vše Re: octave - pole
Omluvam se.. tohle je blbost.. uz sem zbly z jine prace... cast faktalu mi to vykreslilo, jeste zkusim vykreslit pomoci plot(x,y)..

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.