我正在解这个数值微分方程,有人能帮忙吗?
clc;
clear;
syms A1(z) A2(z)
lamda1 = 1560*(10^-9);
c=3*(10^8);
d_eff=27*(10^-12);
omga1=(2*pi*c)/(lamda1);
omga2=omga1*2;
n=2.2;
k1=(n*omga1)/c;
k2=(n*omga2)/c;
ode1 = diff(A1) == (2*i*(omga1^2)*d_eff*A2*conj(A1)*exp(-i*(2*k1-k2)*z))/(k1*(c^2));
ode2 = diff(A2) == (i*(omga2^2)*d_eff.*(A1.^2).*exp(i*(2*k1-k2)*z))/(k2*(c^2));
odes = [ode1; ode2];
cond1 = A1(0) == 1;
cond2 = A2(0) == 0;
conds = [cond1; cond2];
M = matlabFunction(odes)
sol = ode45(M(1),[0 20],[2 0]);
1条答案
按热度按时间sdnqo3pr1#
在这个问题中,两个ODE都是耦合,因此只有1个ODE需要解:
并将该表达式代入第二方程。
现在要解的常微分方程是
将获得的前一点的ODE输入到此链接中可用的ODE求解器中
https://www.wolframalpha.com/input?i=y%27%27+%2B+y+%3D+0
并解决了
A2
的一般(符号)解为请注意,我仅在WolframODE解算器中使用
k1
代替n1
,使用k2
代替n2
。改写:通解的
k1
k2
表达式不是问题方程的波数k1
k2
,请相应替换。A1
。在贴出的MATLAB代码的最右侧,指数表达式
这里有
(k1*(c^2))
除以指数,而在这个问题中,没有一个指数显示出分母,它们各自的指数。dk
或delta k
显然是k2-k1
或k1-k2
,这里可能存在符号模糊的空间,这可能会将波解投射到相反的方向上,但这里的点在哪里应该是
或者只是
(-1)^.5
可以用1j
或1i
表示,但正如问题中提供的MATLAB代码所写的那样,由于只有一大块代码可用,因此可以公平地假设没有这样的i=1j
。