【发布时间】:2015-05-19 17:36:54
【问题描述】:
我想计算一个需要用户定义函数积分的表达式。
我有 3 个积分表达式的输入,E、F 和 B。F 和 B 是存储在单独数组中的值。 E 是我要积分的参数,从 0 值到 B 值。
我正在尝试将积分函数与用户定义的函数一起使用,尽管我不断收到矩阵维度错误,我不理解这是因为 F、B 的所有值(我认为)都作为标量输入传递。
但是,我意识到对于循环的每次迭代,我都在定义一个新函数,这似乎“不优雅”。任何建议 1.为什么它不会按原样运行(即使用*的错误,内矩阵尺寸必须一致) 2. 还有更优雅的解决方案吗?
这是循环
for i=1:51
% DEFINE energy integrand, without prefixes
nrgInt=@(E,F,B) sqrt(E)*exp(-8*pi*(m*q)^(0.5)*(B-E)/(3*h*F))/(exp(E/(k*Temp))+1);
% Integrate over energy range, store
J(i)=q*mu*8*pi*sqrt(2)*m.^1.5/h^3*Farray(1,i)*integral(@(E)nrgInt(E,Farray(1,i),Barray(i)),0,Barray(i));
clear nrgInt
end
非常感谢
【问题讨论】: