凉冰624 2023-07-01 16:17 采纳率: 100%
浏览 38
已结题

matlab syms使用报错

亲们想问一下这个MATLAB脚本
代码怎么错了,一直不太懂:

clc;
clear;
q=1.6*10^(-19);  ap=1.582*10^6;
e0=8.85*10^(-12); er=11.9;
A=1.8*10^35;   an=7.03*10^5; 
bp=2.036*10^6;   bn=1.231*10^6;
u=1360;

syms     NB   t  x Wc
k0=-q*NB/(er*e0);   
E0=-(k0*Wc);
E=k0*x+E0;
anzhu=7.03*10^5*exp(-bn./(k0*x+E0));
apzhu=bn*exp(-bp./(k0*x+E0));

f=exp(t)/t;

Ei1=int(f,t,-inf,-(bn/E0));
Ei2=int(f,t,-inf,-(bp/E0));

F0=(an*bn*Ei1-ap*bp*Ei2+(an*exp(-bn/E0)-ap*exp(-bp/E0))*E0)/k0;

Ei3=int(f,t,-inf,-bn/(k0*x+E0));
Ei4=int(f,t,-inf,-bp/(k0*x+E0));

MOM=int(anzhu*exp(-ap/k0*(bp*Ei3+E0*exp(Ei4))-F0),x,0,Wc);
eqn=[MOM==1];
var=[Wc];
[Wc]=solve(eqn,var);
Ronsp=Wc./(q*u*NB);
BVpp=int(k0*x+E0,x,0,Wc);
Wc
NB

  • 写回答

3条回答 默认 最新

  • 盒子猫君 2023-07-01 16:28
    关注

    在这个MATLAB脚本中,有几个可能的问题。这个脚本在MATLAB中运行可能会出现一些错误,这些错误主要包括变量的使用,函数的定义和公式的使用。以下是我发现的一些问题和建议的修正:

    1. 你在这个脚本中使用了符号计算(syms函数),但是在使用符号计算的时候,要特别注意确保所有的符号都已经定义。例如,在这个脚本中,你使用了符号NBtxWc,但是这些符号在后面的计算中都没有被赋值,这可能会导致MATLAB报错。你应该在使用这些符号之前给它们赋值。

    2. 你在脚本中使用了int函数,这个函数在MATLAB中是用来计算数值积分的,但是你在使用这个函数的时候,没有提供必要的参数。比如Ei1=int(f,t,-inf,-(bn/E0));这一行,你没有定义函数f的积分范围。你应该在使用int函数之前定义好积分范围。

    3. 你在脚本中使用了solve函数,这个函数在MATLAB中是用来求解方程的,但是你在使用这个函数的时候,没有提供必要的参数。比如[Wc]=solve(eqn,var);这一行,你没有定义方程eqn和变量var。你应该在使用solve函数之前定义好方程和变量。

    4. MOM=int(anzhu*exp(-ap/k0*(bp*Ei3+E0*exp(Ei4))-F0),x,0,Wc);这一行中,你没有正确地定义MOM函数。你应该使用MOM = @(x) anzhu*exp(-ap/k0*(bp*Ei3+E0*exp(Ei4))-F0);来定义MOM函数。

    5. 最后,你的脚本结束的时候,没有对WcNB进行任何操作或输出,这可能会导致MATLAB报错。你应该在脚本的最后添加一些操作,比如输出这两个变量的值。

    请尝试对以上这些问题进行修正,然后再运行你的MATLAB脚本,看看是否还有其他的问题需要解决。

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

报告相同问题?

问题事件

  • 系统已结题 7月20日
  • 已采纳回答 7月12日
  • 创建了问题 7月1日