0
$\begingroup$

I would like to solve

nf = 1.9; ns = 1.89; c = 3*^8; H = 1.250*^-6; B = Table[Sqrt[ (A/c)^2 nf^2 - (FindRoot[Tan[k*H/2]==Sqrt[(A/c)^2 (nf^2 -ns^2) - k^2]/k, {k,20}][[1, 2]])^2], {A, 0, 3*^15}] ListPlot[B] 

Am I missing something really obvious??

$\endgroup$
2
  • $\begingroup$ Do you also get a SystemException["MemoryAllocationFailure"]? My first step would be to look at the equation inside FindRoot. This function looks very weird and doesn't seem to have a root at all. $\endgroup$ Commented Jun 26, 2018 at 21:25
  • 2
    $\begingroup$ Note that Table[..., {A, 0, 3*^15}] implies evaluation of all values of $A$ between 0 and $3\times 10^{15}$ with a step of $1$. That seems unreasonable. If each evaluation took only 1 ms, the whole exercise would take on the order of 100,000 years, not to mention immense amounts of memory. Start by setting a reasonable step size, e.g. {A, 0, 3*^15, 1*^14}. You will at least get some results then. $\endgroup$ Commented Jun 26, 2018 at 21:45

1 Answer 1

1
$\begingroup$

You have many many syntactic errors:

c = 3*^8 makes no sense. Presumably you mean c = 3 10^8

H = 1.250*^-6 is wrong in several ways. Presumably you mean H = 1.250 10^(-6)

You must assign f.

You should use a large step size (as @MarcoB writes). And so on.

You should simplify by substituting values whenever possible.

You should avoid using upper-case letters to label a variable ALWAYS.

You need semicolon at the end of each functional line.

A start:

f = 7; c = 3 10^8; h = 1.250 10^(-6); b = Table[ Sqrt[(a/c)^2 1.9 f^2 - (FindRoot[ Tan[k h/2] == Sqrt[(a/c)^2 (1.9^2 - 1.89^2) - k^2]/k, {k, 20}][[1, 2]])^2], {a, 0, 3 10^(15), 10^(14)}]; ListPlot[b] 
$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.