/ / S matricovou výstrahou v MATLAB-u: Rank deficient, rank = 0, tol = NaN - matlab, oktáva, matlab-figure

S matricovou výstrahou v MATLAB-u: Rank deficient, rank = 0, tol = NaN - matlab, oktáva, matlab-figure

Snažil som sa dostať tento výraz vykreslil v MATLAB, ale stále dostanem Warning: Poradie nedostatočné, hodnosť = 0, tol = NaN chybná správa.

Matematický model, na ktorom pracujem

t = 1:1:14;
n1 = 3.43-2.30i;
lamda = 1550*1e-9;

R = abs((1i*((1/n1)-n1)*sin(2*pi*n1*t/lamda))/(2*cos(2*pi*n1*t) + 1i*(1/n1) +n1)*sin(2*pi*n1*t/lamda)))^2;

figure
plot(t,R)
xlabel("Number of graphene layers")
ylabel("Reflectivity")

Snažím sa dostať niečo podobné s týmto plot.Prosím, môže mi niekto pomôcť, ako sa dostať to pevné? Ospravedlňujeme sa, som stále nováčik MATLAB.

Ďakujem

Plot, ktorý sa snažím dosiahnuť

odpovede:

0 pre odpoveď č. 1

Presná chyba, ktorú dostanete, je spôsobená dvoma vecami

  1. Nesprávne používanie maticových operácií namiesto operácií typu "array"
  2. Skutočnosť, že sin(ix) rastie exponenciálne, a tak argumenty, ktorými prechádzate sin vráti sa Inf (ako bude cos()).

Jednotlivé operácie

Na x / y MATLAB vykladať operátora pri aplikovaní vektory snahe vyriešiť za A v systéme A * x = y.

vymeniť / s ./ získať element-wise divízie vektorov, ktoré budete potrebovať vo výraze pre R.

Podobne, použitie .^ získať element-wise exponent operátora.

Existuje dokumentácia na rozdiel medzi "array" a "matrix" subjekty k dispozícii:

https://au.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html

Exponenciálny rast sin(ix)

Vypočítať vzorec, niektoré prestavby je potrebné vyhnúť sa výpočet veľmi veľké výrazy, ktoré nakoniec zruší každého iný.Vynásobte hornej a dolnej frakcie podľa sin(2*pi*n1*t/lambda), a zistíte, že:

th = 2*pi*n1*t/lambda;
R = abs((n1 - 1/n1) ./ (2*cot(th) + 1i*(n1 + 1/n1))).^2;

robí trik uvedené vaše vstupy. Čísla sa nezhodujú plot poskytnete.

R =

Columns 1 through 13:

0.44933   0.44933   0.44933   0.44933   0.44933   0.44933   0.44933   0.44933   0.44933   0.44933   0.44933   0.44933   0.44933

Column 14:

0.44933

Navrhoval by som, aby ste

  • Skontrolujte jednotky pre vzorec, uistite sa, že vaše vstupy sú správne jednotky a
  • Skontrolujte vzorec ste dali za R_1