[已答复] 从 sym 转换为 double 时出现以下错误: Unable to convert expression into double array.

[复制链接]
xiaoqcc 发表于 2021-1-13 14:30:27
function dy=sol(t,y)
dy=zeros(2,1);
syms r z
wp=300e-4;wl=300e-4;tao2=8e-3;
sigma_abs=1.08e-20;sigma_em=sigma_abs;nt=0.8;fu=0.108;fl=0.018;
Nho=3*4.55*nt*6.02e23/59370;
eta_q=1;arf=Nho*sigma_abs;n=1.82;
lr=5;Pin=50;h=6.626e-34;lamda_p=1908e-7;lamda_l=2090e-7;
c=3e10;v_p=c./lamda_p;v_l=c./lamda_l;lc=10;
eta_arf=1-exp(-arf*lr);lcc=(n-1)*lr+lc;
R0=1*eta_arf*Pin./(h*v_p);detaa=0.01;T=0.5;deta=detaa+T;
rp=2*arf*exp(-arf*z)*exp(-2*r^2/wp^2)./(pi*wp^2*(1-exp(-arf*lr)));
j=2*exp(-2*r^2/wl^2);tao_c=2*lcc/(c*deta);
k=1.5e-18;
dy(1)=sigma_em*c/n*(int(int((fu*y(2)-fl*(Nho-y(2)))*y(1)*j,r,0,inf),z,0,lr))...
    -y(1)/tao_c;
dy(2)=R0*rp-k*y(2)^2-y(2)/tao2-sigma_em*c./n*((fu+fl)*y(2)-fl*Nho)*y(1)*j;
进行求解
[t.y]=ode45(@sol1,[0 1],[0 0])
出现错误
从 sym 转换为 double 时出现以下错误:
Unable to convert expression into double array.怎么解决?


4 条回复


20141303 发表于 2021-1-13 16:27:32
仅供参考
R0*rp-k*y(2)^2-y(2)/tao2-sigma_em*c./n*((fu+fl)*y(2)-fl*Nho)*y(1)*j里含有未知量r和z,无法转化为double类型数据

xiaoqcc 发表于 2021-1-13 16:30:25
20141303 发表于 2021-1-13 16:27
仅供参考
R0*rp-k*y(2)^2-y(2)/tao2-sigma_em*c./n*((fu+fl)*y(2)-fl*Nho)*y(1)*j里含有未知量r和z,无法转 ...

未知量该怎么修改呢

20141303 发表于 2021-1-13 16:40:52
这怎么说呢,到这一步不应该有未知量了,比如通过积分消去未知量,但这得根据你的求解需要啊

xiaoqcc 发表于 2021-1-18 16:49:22
20141303 发表于 2021-1-13 16:40
这怎么说呢,到这一步不应该有未知量了,比如通过积分消去未知量,但这得根据你的求解需要啊 ...

您好,能帮我跑一下程序吗?我的电脑算不出来,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表