Explain the equation to find the collaboration between neighbors in SOM in unsupervised learning

In kohonen SOM algorithm, the equation to find the collaboration is:

enter image description here

I know that LDist is the lattice distance and sigma is the standard deviation. I am just wondering why they are squared ? Can anyone help me to visualize the equation or explain to me what is going on in the above equation ?

Is this a valid equation for determining certificate lifetimes in a PKI infrastructure?

I have an intuitive sense of how certificate lifetimes should work in a PKI infrastructure, but I don’t consider myself an expert in this field so I would like someone to validate or critique my assumptions:

The “leaves” on a PKI hierarchy are the certificates issued by a CA. The maximum lifetime of one such certificate is equivalent to:

renewal interval          + renewal period           = certificate lifetime (renew yearly, i.e. 1 yr) + (1-month renewal period) = 13 month lifetime 

An intermediate/issuing CA’s cert’s lifetime follows the same pattern, plus the maximum lifetime of a cert it can issue:

renewal interval + renewal period + child lifetime = certificate lifetime 2 years          + 1 month        + 13 months      = 3 year, 2 month lifetime 

The last step “recurses” up the PKI hierarchy through any more intermediate CA tiers until you get to the root cert.

This means, necessarily, a CA’s cert must always have a lifetime longer than the certs it issues.


Context: Apple’s Announcement about 13-month maximum cert lifetimes starting September 1st 2020 must therefore only apply to leaf certs, and not to certs issued to intermediate or root CAs.

I want to plot root of the following complex equation

I am trying to plot the roots of the following equation as mentioned in the code below But it is not giving me output. If anyone can resolve this problem for me is most welcome.

del = -1.5; del0 = 1.5; ome = 2; A1 = 0; B1 = 1; g0 = 2; G1 = 5; k1 = 0.1; kex = 0.1; X1 = g0/2*(1 - del0/ome)*A1; Y1 = P0/Sqrt[2]*g0/ome*B1; C1 = (G1/2)^2 + ome^2; kL = (k1 + kex)/2 - del0*(k1 - kex)/(2*ome); sol = Solve[{I*del*a1 +     I*g0*(1 - del0/ome)*A1*(X1*Dagger[a1]*a1 + Y1*Re[a1])/C1*ome +     I*P0/Sqrt[2]*(1 - del0/(2*ome)) +     I*P0*g0*B1/(Sqrt[2]*ome)*(X1*Dagger[a1]*a1 + Y1*Re[a1])/C1*     ome - kL*a1/2 - (k1 - kex)*g0*     B1/ome*(X1*Dagger[a1]*a1 + Y1*Re[a1])/C1*a1 == 0},  a1]; // FullSimplify  Plot[Evaluate@(a1 /. sol), {P0, 0, 2},   PlotStyle -> (Directive[Thick, ColorData[97][#]] & /@ {1, 3, 2}),    PlotLegends -> Placed[Automatic, {0.5, 0.625}]] 

How to adjust PrecisionGoal and AccuracyGoal to solve my equation using NDSolve[]?

This is a very interesting question. I’m solving a differential equation to get a function z[$ \rho$ ], the expected solution needs to start from $ z[\rho_c]=z[\frac{13}{5}]=\frac{24195890215702774518563237183870329}{8112963841460668169578900514406400}\approx 2.98$ , until when the function $ z[\rho]$ hits on the $ \rho$ -axis. The code is as follows:

precTmp = 4 MachinePrecision; sol = (\[Rho]c = 13/5;    vt = Sqrt[zt^2 - \[Rho]c^2] - zt;     ParametricNDSolveValue[{(1 - z[\[Rho]]^3)^2/z[\[Rho]] +         3/2 z[\[Rho]]^2 Derivative[1][          z][\[Rho]]^2 + (1 - z[\[Rho]]^3) (Derivative[1][z][\[Rho]]^2/           z[\[Rho]] + (z^\[Prime]\[Prime])[\[Rho]]) + (        169 (-(13/5) + zt)^2 (13/5 +            zt)^2 z[\[Rho]]^2 (-3 z[\[Rho]]^2 +            2 (z^\[Prime]\[Prime])[\[Rho]]))/(200 zt^2) == 0,       Derivative[1][z][13/5] == -((13 (2 - (-(169/25) + zt^2)^(3/2)))/(        10 Sqrt[-(169/25) + zt^2])), z[13/5] == Sqrt[-(169/25) + zt^2],       WhenEvent[z[\[Rho]] == 10^-3, "StopIntegration"],       WhenEvent[z[\[Rho]] == 1.1` Sqrt[zt^2 - \[Rho]c^2],        "StopIntegration"]}, z, {\[Rho], \[Rho]c, R + 1}, {zt},      WorkingPrecision -> precTmp, AccuracyGoal -> precTmp/2, MaxSteps -> 10^6,      Method -> "StiffnessSwitching"]); 

Note that we can adjust the parameter precTmp to ramp up the precision. To check the correctness of the solution, it’s natural to plot the solution out, as follows:

ztValue = 24195890215702774518563237183870329/   8112963841460668169578900514406400; Plot[sol[ztValue][\[Rho]], {\[Rho], sol[ztValue]["Domain"][[1, 1]],    sol[ztValue]["Domain"][[1, 2]]}, PlotRange -> All,   WorkingPrecision -> precTmp] 

The first thing I can’t understand is that the shape of the solution $ z[\rho]$ is different when I change the precision, for example, taking precTmp to be 3 MachinePrecision, 5 MachinePrecision, or 6 MachinePrecision, the solution is decreasing and hit on $ \rho$ -axis, but when taking precTmp to be 4 MachinePrecision, 8 MachinePrecision or 12 MachinePrecision, the solution turns out to be increasing. My first question is which one of them is the correct answer?

The second question that I can’t understand is when providing a PrecisionGoal in ParametricNDSolveValue[] function, for example, we take precTmp = 4 MachinePrecision again, and add PrecisionGoal->precTmp, the solution becomes a decreasing function, which is originally an increasing one. I’ve already learned the difference between precision and accuracy, which can somehow be regarded to be equivalent as long as the function doesn’t go to zero. Thus my second question is how to understand the difference brought by the PrecisionGoal set here.

Solving Nonlinear Heat Equation with initial Conditions

I have the following setup for the linear heat equation on an infinite rod (see below). This is a pretty standard setup and the initial condition is $ e^{-x^2}$ . This initial condition is not special, it just provides a way to ensure that the code works.

Clear[x, t]; With[{u = u[t, x]}, eq = D[u, t] == k D[D[u, x], x];  ic = u == Exp[-x^2] /. t -> 0;  bc = D[u, x] == 0 /. x -> 0;] asol = DSolveValue[{eq, ic, bc}, u, {t, x}, Assumptions -> {k > 0}]; asol[t, x] 

What I want to do is test different ideas and so I want to modify this linear heat equation into the nonlinear heat equation or another PDE that is similar but is different than a linear PDE.

The nonlinear heat equation is defined as the following

\begin{equation} \frac{\partial u}{\partial t} = \frac{\partial}{\partial x}\left[g(u) \frac{\partial u}{\partial x}\right] \end{equation}

and further literature on the nonlinear heat equation can be found here.

If we assume that $ g(u) = u$ then I would expect that I could modify the setup as:

Clear[x, t]; With[{u = u[t, x]}, eq = D[u, t] == k D[ u D[u, x], x];  ic = u == Exp[-x^2] /. t -> 0;  bc = D[u, x] == 0 /. x -> 0;] asol = DSolveValue[{eq, ic, bc}, u, {t, x}, Assumptions -> {k > 0}]; asol[t, x] 

However, Mathematica simply regurgitates the code and does not produce an output.

I also wish to have a different type of setup such as:

\begin{equation} \frac{\partial u}{\partial t} = \frac{\partial}{\partial x}\left[h(x) \frac{\partial u}{\partial x}\right] \end{equation}

and modify the first block of code for this as well.

If anyone can help me understand why my latter setup doesn’t work and can show me how to set it up correctly, I would be very thankful.

Also this is not for a class. It is for my own personal understanding.

How to NDSolve this equation?

I am trying to find the answer to f[r] in the following differential equation. Is there anything wrong? Why the output is printed with error?

eq=-2 + r - r*f[r] +    (0.01*(-2*Derivative[1][f][r]*(6*f[r] - 6*f[r]^2 +         r*Derivative[1][f][r]*(3 + r*Derivative[1][f][            r])) + 6*r*f[r]*(2 - 2*f[r] +         r*Derivative[1][f][r])*Derivative[2][f][r]))/    r^2;  NDSolve[{eq==0},f,{r,0,5}] 

All the additional informations are $ f(0)=\infty$ , and $ f(\infty)=1$ .