Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 02. 02. 2016 11:51

WonderWoman
Zelenáč
Příspěvky: 3
Reputace:   
 

Matice, MATLAB, Stokesovy vektory

S01=[1;1;0;0]; %vstupni Stokes

theta=0:pi/100:2*pi;

%vstupni Stokesovy
S0=1;
S1=1;
S2=0;
S3=0;


%matice polarizatoru idealni
Mp_id=[1 1 0 0;...
             1 1 0 0;...
             0 0 0 0;...
             0 0 0 0]/2;

        %matice desticky idealni                     
        Md_id=[1 0 0 0;
            0 (cos(2*theta)^2)+(sin(2*theta)^2)*cos(pi/2) cos(2*theta)*sin(2*theta)*(1-cos(pi/2)) -sin(2*theta)*sin(pi/2);
            0 cos(2*theta)*sin(2*theta)*(1-cos(pi/2)) (sin(2*theta)^2)+(cos(2*theta)^2)*cos(pi/2) cos(2*theta)*sin(pi/2);
            0 sin(2*theta)*sin(pi/2) -cos(2*theta)*sin(pi/2) cos(pi/2)];





S02 = Mp_id*Md_id*S01; %vystupni stokes
Iid = S02(1);


Iid2=(1/2)*(S0+(S1/2))-(S3/2)*sin(2*theta)+(S1/4)*cos(4*theta);

plot(theta,Iid);
hold on
plot(theta,Iid2)


Obě intenzity by se měly rovnat (Iid by měla být první souřadnicí a Iid2 je pak vlastně přímo výpočet ze vzorce) ale matlab mi hlásí chybu u matice ideální destičky, že matice musí být čtvercové. Nevidím tam chybu. Proč?

Díky za pomoc, pokud se v tom někdo vyzná :)

Offline

 

#2 02. 02. 2016 15:45

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 920
Reputace:   63 
 

Re: Matice, MATLAB, Stokesovy vektory

Zdravím,
Matlab neznám, ale řekl bych, že špatně interpretuje zadané hodnoty. Například na druhém řádku máš napsáno:

Code:

0 (cos(2*theta)^2)+(sin(2*theta)^2)*cos(pi/2) cos(2*theta)*sin(2*theta)*(1-cos(pi/2)) -sin(2*theta)*sin(pi/2);

poslední hodnota začíná mínusem a Matlab si myslí, že je to součet s předcházející hodnotou. Tudíž mu jedna chybí a matice pak není čtvercová. Zkusil bych to napsat takto:

Code:

0 (cos(2*theta)^2)+(sin(2*theta)^2)*cos(pi/2) cos(2*theta)*sin(2*theta)*(1-cos(pi/2)) sin(2*theta)*-sin(pi/2);

Pak tam bude mezera, která udává že následuje další hodnota. Analogicky pak na dalším řádku.


LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson