m0_66442532 2022-02-05 23:23 采纳率: 100%
浏览 55
已结题

关于Matlab求解含变量的二次方程组,程序有什么问题?

需要对四个方程进行求解后(解出来n1,n3是关于J的解),再进行画图(以J为横坐标,E为纵坐标画图),需求如附图所示。自己写的程序如下:
syms n1 n2
[n1,n2]=solve('(3.2E7+3.1E7)n1==5.6E3n2-2E-11n1n2+0.255E-15n2^2+J/4*(1.5E-31.6E-19)','3.1E7n1==(5.6E3+8.2E2)n2+1.255E-15n2^2-3J/(41.5E-31.6E-19)','n1','n2');
syms n3 n4
[n3,n4]=solve('(3.2E7+3.1E7)n3=5.6E3n4+J/(41.5E-31.6E-19)','3.1E7n3=(5.6E3+8.2E2)n4-3J/(41.5E-3*1.6E-19)','n3','n4');

J=(0:100);
E=13.6*n1/n3;
plot(J,E)

麻烦各位帮忙指导指导,万分谢谢!
文献里面是仿真出下图的红实线,实在搞不懂,来论坛请教各位彦祖了!

img

img

  • 写回答

2条回答 默认 最新

  • SmallAntJ 2022-02-06 03:23
    关注

    solve函数得到的是解析表达式,然后可以用subs()函数给参数赋值,所以solve表达式里的参数不需要赋具体值,这样不容易出错。第二组方程n3,n4只有1组解,第一组方程n1,n2有3组解,这里我只选了第一组也就是n1(1)和n3(1)。

    syms n1 n2;
    [n1,n2]=solve('(k1+k2)*n1==k3*n2-k4*n1*n2+a*k5*n2^2+J/(4*d*e)','k2*n1==(k3+k6)*n2+(1+a)*k5*n2^2-3*J/(4*d*e)','n1','n2');
    syms n3 n4;
    [n3,n4]=solve('(k1+k2)*n3=k3*n4+J/(4*d*e)','k2*n3=(k3+k6)*n4-3*J/(4*d*e)','n3','n4');
    
    k1 = 3.2E7;
    k2 = 3.1E7;
    k3 = 5.6E3;
    k4 = 2E-11;
    k5 = 5E-15;
    k6 = 8.2E2;
    a  = 0.25;
    d  = 1.5E-3;
    e  = 1.6E-19;
    
    %J=0.01:1:100;
    J = logspace(-2,2,20);
    E=16.3*n1(1)/n3(1);
    
    loglog(J,subs(E),'-s');
    ylim([0.8 25]);
    yticks([1 5 10 20]);
    ylabel('\etaEQE (%)');
    xlim([0.01 100]);
    xticklabels({'0.01','0.1','1','10','100'});
    xlabel('Current Density (mA/cm^2)');
    set(gca, 'box','off');
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月14日
  • 已采纳回答 2月6日
  • 创建了问题 2月5日

悬赏问题

  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制