这和之前的问题完全一样。左手边包含z作为x的函数,但右手边包含z作为自变量,而不是x的函数。
你甚至可以给n(z)一个定义它不明显地涉及到x。
如果我们说"好的,z实际上是z(x)"那么
是函数的导数,在普通演算中无效(需要变分演算)
为了能求出n关于z的微分即使z是x的函数,那么你需要知道n是独立于z的,这是你无法知道的,因为z(x)是未知的。
然而……理论上是可以的
尝试
只要你把求出的z(x)回代进去,就可以检验你得到的导数是否与假设的导数一致。
信谊nn0n_2 z(x) z
N =根号(n_0^2 + n_2^2 * exp(- α *z(x)));
dndx =潜艇(diff(潜艇(n z z), z), z, z) * diff (z (x) x);
显示(n)
显示(dndx)
d2zdx=diff(z(x),x,x);
disp (d2zdx)
方程n=d2zdx==n/beta^2*dndx;
disp(eqn);
ZX = dsolve (eqn)
ZX=
对数(-n_2^2+exp(C1*alpha*(C2+x))/(2*C1*beta^2))/alpha
C1
z(x)金宝搏官方网站的两个解,一个是常数,另一个更有趣。
现在,我们可以使用你的代码中的边界条件,根据边界条件继续计算C1和C2的值吗?
好不,至少不容易。有n(0)=1/2的边界条件。为了用x来表达它,这样你可以找到z(x)的边界条件,你必须解z(x)==0才能找到x
Z0=解算(subs(n,z,ZX(1))==0,x);
var = symvar (ZX);
C2=求解(子(n,z,Z0)=1/2,变量(2));
dZ0=简化(subs(subs(subs(dndx,z,ZX(1)),vars(2),C2),x,0));
C1=求解(dZ0==tan(Pi/10),变量(1))
然后我们就没动力了,这个方程太乱了,找不到C1常数。
“其中β^2为常数”
Np =√(n0 ^ 2 + (n2 ^ 2 * exp(-a * 0.5)));
B = np * cos(i1);
这在我看来不是一个常数。