[已解决] Matlab定义一个带有定积分的函数,然后作图

[复制链接]
chenjh258 发表于 2017-3-26 10:59:55
本帖最后由 chenjh258 于 2017-3-26 11:02 编辑

定义函数
fun3
function [f] = fun3(v,a,ri,ro)
f=v.^3.*integral(@(r)(exp(v.*(r.^a))-1).^(-1).*r,ri,ro);
end
这个定义函数直接带入变量可出来结果,但是我用plot做图就出错了,代码如下:
v=0:0.01:500;
plot(v,fun3(v,1,1,100));
错误显示为Matrix dimensions must agree.
请问究竟是什么哪里出了问题?不知道哪位能帮我看看,谢谢了。



最佳答案


深蓝孩童 发表于 2017-3-26 11:15:16
你这个对每个v求得一个积分,所以fun3应该改一下a:
  1. function [f] = fun3(v,a,ri,ro)
  2. f=v.^3.*arrayfun(@(v)integral(@(r)(exp(v*(r.^a))-1).^(-1).*r,ri,ro),v);
  3. end
复制代码
v的间隔不要取太小,v = 0:0.5:500就行
回复此楼

4 条回复


深蓝孩童 发表于 2017-3-26 11:15:16
你这个对每个v求得一个积分,所以fun3应该改一下a:
  1. function [f] = fun3(v,a,ri,ro)
  2. f=v.^3.*arrayfun(@(v)integral(@(r)(exp(v*(r.^a))-1).^(-1).*r,ri,ro),v);
  3. end
复制代码
v的间隔不要取太小,v = 0:0.5:500就行
回复此楼

chenjh258 发表于 2017-3-26 11:53:16
深蓝孩童 发表于 2017-3-26 11:15
你这个对每个v求得一个积分,所以fun3应该改一下a:v的间隔不要取太小,v = 0:0.5:500就行 ...

按照你说的做出来的,谢谢你。

linglingjiayou 发表于 2022-6-21 13:29:31
chenjh258 发表于 2017-3-26 11:53
按照你说的做出来的,谢谢你。

您好,请问您可以将一些您定义的函数的公式吗?我没有看懂f是什么意思,为什么这么写:handshake

linglingjiayou 发表于 2022-6-21 14:26:38
深蓝孩童 发表于 2017-3-26 11:15
你这个对每个v求得一个积分,所以fun3应该改一下a:v的间隔不要取太小,v = 0:0.5:500就行 ...

您好,我刚刚在搜关于matlab画积分图像的代码,看到了您的一条回答,但我没有完全明白,特向您请教一下
您能否帮忙讲一下 这个函数在表达什么式子吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表