本人matlab新手,求教指数积分函数的性质,并通过matlab如何画出指数积分函数Ei曲线图,万分感谢!

 我来答
tianxiawulang
2013-07-14 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2660万
展开全部

补充说明几点,供探讨:

(1)之所以回答这个问题,是因为楼上最初只给了结果而没给代码(在我昨天下午提交回答之后发现楼主有追问,楼上也已贴出代码),对于新手而言不能算是解决问题的好方式,而且我简单做了一下觉得结果也有点可疑(下面再说)。

(2)和我的代码比较,楼上所给代码的效率比较低,在我的电脑上运行大约需要7分钟时间,而我的代码只需要1分钟左右。上面所说的运行时间只有相对的参考意义,和电脑硬件、软件环境都有关系。

(3)比运行时间更重要的一点是,楼上的做法采用多个plot叠加,这样会占用大量资源,在句柄太多时应慎用(如本例,相当于画了5000条线)。

(4)说一下为什么当初觉得楼上的结果可疑:从后来贴出的代码可见,是由于用axis函数把纵坐标范围设为-0.6~1之间(相当于局部放大),导致了曲线的形状差别。有点不明白楼上为什么要这样设置——仅仅为了曲线好看一点?我觉得,正确应该比好看更加重要吧?

 

=========================

以下为7月13日下午回答的内容。

=========================

 

1、指数积分函数的性质有很多,不知道楼主所指的是什么?

百度知道不支持输入公式,贴图感觉很没必要,请参考维基百科的条目:

中文:http://zh.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E7%A7%AF%E5%88%86

英文:http://en.wikipedia.org/wiki/Exponential_integral

 

2、指数积分函数不是初等函数,在MATLAB软件中,它属于一个特殊数学函数(special mathematical function),可以用mfun来进行计算。

 

3、就楼主的问题而言,可使用下面的代码计算:

r0=1.95;
a=0.875;
t=1:5000;
K=1./mfun('Ei',-r0^2./(4*a*t));
plot(t,K,'linewidth',2,'clipping','off');
xlabel('t');
ylabel('K');

 

绘图结果:

追问
从你这里学到很多 给了很中肯的建议  也帮我解决了问题  真心很感谢   只不过我不会追加奖励    不好意思
追答
追加奖励没必要,不过面对多个解答总应该有个比较吧,看回答的质量、用心程度以及对自己帮助的大小等等。虽然虚拟的积分并不重要,但付出劳动总还是希望受到尊重的吧。这样的回答居然没被采纳,我真的感到无语。
lhmhz
高粉答主

2013-07-11 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17018

向TA提问 私信TA
展开全部

1、用matlab表示指数积分函数的语句

K=1/mfun('Ei',x)

2、上述函数表示的K—t曲线图

追问
大神  能把这个小程序写一下不?  尽量详细一点    还是不清楚对Ei怎样进行描述  感激不尽!
追答
t=1;
while t<=5000
x=-(1.95^2./(4*0.875*t));
K=1/mfun('Ei',x);
hold on
plot(t,K),grid on
axis([1 5000 -0.6 0])
t=t+1;
end
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式