求matlab大神,matlab画指数积分函数 Ei(x),为了得到下图的图像,公式也在附图,λ=52,a=1.50*10^-5

如题所述

为了得到所需的图像,我们可以这样来做:

1、创建时间向量组,即

t=[0.1,1,10,100,1000];

2、运用for循环语句,来计算t为某一数值时的T,r值,并绘制其图像。即

for i=1:5

q=1;

T0=0; 

lambda=52;

a=1.5e-5;

r=0:0.001:0.05;

T=T0-q/(4*pi*lambda).*ei(-r.^2/(4*a*t(i)));

plot(r,T),hold on

end

3、标注坐标轴名称和图例名称

legend('t=0.1s','t=1s','t=10s','t=100s','t=1000s')

xlabel('Radius [m]'),ylabel('Temperature variation [K]')

执行结果

追答

1、ei(x)是可以运用的。
2、后面的积分,可以用数值积分来做,如integral()函数或trapz()函数

追问

不好意思,我不太明白。因为上面公式的积分也是属于n阶指数积分,您的意思是用数值积分,比如integral只对mu进行积分吗?可是这个函数包含了多个参数,该怎么处理呢?可以直接用ei( f(x,t))这样吗?

追答

1、先自定义被积函数,
function y=func(x)
r=?,参数
t=?,参数
y=f(x,r,t) 被积函数表达式
end
2、再数值积分
q = integral(func,xmin,xmax)
xmin—积分下限,xmax—积分上限
3、如有多个参数,可以将他们代入后,再数值积分

追问

好的,谢谢您,我先试一下

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