我正在为特定系统求解 MATLAB 中的扩散方程,但我得到的第二个解 nsub(r) 存在问题。理想情况下,我希望它只是具有两个未确定常数的 r 的函数,虽然表达式的第一部分确实是一些 bessel 函数,但它还包含 ,r, 'IgnoreAnalyticConstraints', true)。有谁知道如何解决这个问题以及出了什么问题?这是我的代码:
clear all
clc
%%%%%% constants %%%%%%%
r_nw=50*10^(-9);
pitch_nw=500*10^(-9);
f_sub=10^18;
f_nw=10^18;
L_nw=100*10^(-6);
%%%%%% diffusion on wire %%%%%
tau_nw=1000*10^(-9);
D_nw=1*10^-9;
lambda_nw=sqrt(D_nw*tau_nw);
%%%%%% diffusion on substrate %%%%%%%
tau_sub=100*10^(-9);
D_sub=1*10^(-9);
lambda_sub=sqrt(D_sub*tau_sub);
%%%%%% diffusion equation on wire %%%%%%%%
syms nw(z)
nw = dsolve(D_nw*diff(nw,z,2) == -f_nw + nw/tau_nw,nw(L_nw)==0);
nw(z)=simplify(nw);
dnw = diff(nw,z);
%%%%%% diffusion equation on substrate %%%%%%
syms nsub(r)
nsub = dsolve(diff(nsub,r,2)+1/r*diff(nsub,r) == -f_sub + nsub/tau_sub);
dnsub = diff(nsub,r);