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

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
Zdravím,
Matlab neznám, ale řekl bych, že špatně interpretuje zadané hodnoty. Například na druhém řádku máš napsáno:
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:
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.
Offline