如何用matlab编写下面这个式子的代码?

假设除了E以外所有的量都已知或可以用公式表达,这里需要先求对fFD微分再对E积分,应该如何用matlab写代码?

题主的问题可以这样来处理。
1、自定义可调用的函数μ(Te)
2、自定义可调用的函数f_FD(E,μ,Te)
fed=1/(exp((E-μ)/(k*Te))+1)
3、自定义可调用的函数ω_p(Te)
wp=sqrt(e^2/(3*m*ε0*pi^2)*int(d*E*(1+2*C*E)^(-1)*(2*m/h^2*(E+C*E^2))^(3/2)*(-diff(fed,E)),0,inf))
注意,希腊字母要用英文字母来代替追问

这个dE应该是积分变量诶,也是用d*E表示吗?

追答

一个陷阱,dE应写着公式最后才对。
wp=sqrt(e^2/(3*m*ε0*pi^2)*int((1+2*C*E)^(-1)*(2*m/h^2*(E+C*E^2))^(3/2)*(-diff(fed,E)),0,inf))

追问

程序运行显示未定义变量E怎么办呀?可是E不是本来就是一个被积变量吗?

追答

你应该先要声明变量,即
syms E

追问

算出来的结果有点奇怪,好像积分没有积成功

下面是结果

追答

加一个vpa()函数,vpa(jg)

jg=为上面的内容

追问

好像还是不太行?

追答

不行,就用quad数值积分函数试一试

追问

把int换成quad函数嘛?

追答

>>help quad %你看一下,quad函数的使用格式

追问

除了quad还有其他积分的方法嘛?我用了quad函数,算出来的依旧是积分不出来的

这是积分part的结果

追答

你的问题,在这里已无法全面解答你的问题,因为看不到你的具体代码。有问题请私信交流。

温馨提示:答案为网友推荐,仅供参考
相似回答