24小时热门版块排行榜    

查看: 2089  |  回复: 7

天地囚

银虫 (小有名气)

[求助] MATLAB 计算累次积分

一个非负函数 的累次积分



怎么用如下代码算出来的居然是一个负数?
请教大神们问题出在哪里?



syms s t;
f = ((1-s)^(1/2)-(1-s)^(3/2))*(s-t)^(1/2)*t^(3/2);
int(int(f,t,0,s),s,0,1)

ans =

-(16*pi)/3465
回复此楼
一心守道,道无穷,穷中有乐;万事随缘,缘有分,分外无求
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
一次积分就是个负的,后面自然是负值了。。。
数值计算
2楼2018-03-05 13:05:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

天地囚

银虫 (小有名气)

引用回帖:
2楼: Originally posted by 独孤神宇 at 2018-03-05 13:05:52
一次积分就是个负的,后面自然是负值了。。。

非负函数的积分不应该是负值啊!
一心守道,道无穷,穷中有乐;万事随缘,缘有分,分外无求
3楼2018-03-05 19:29:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by 天地囚 at 2018-03-05 19:29:10
非负函数的积分不应该是负值啊!...

你确定那是非负函数吗?在给定积分范围内的一次积分就是负的了,你可以吧三维图画出来看看在给定区间的分布

发自小木虫Android客户端
数值计算
4楼2018-03-05 20:28:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

天地囚

银虫 (小有名气)

引用回帖:
4楼: Originally posted by 独孤神宇 at 2018-03-05 20:28:36
你确定那是非负函数吗?在给定积分范围内的一次积分就是负的了,你可以吧三维图画出来看看在给定区间的分布
...

确定是非负函数。因为根据积分区间,可知0<t<s<1,那么被积函数自然就是非负函数啊。
我知道用MATLAB算的话,一次积分就是负值,只是想知道为啥一个非负函数的积分用MATLAB算出来的是负值。
一心守道,道无穷,穷中有乐;万事随缘,缘有分,分外无求
5楼2018-03-06 08:15:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

引用回帖:
5楼: Originally posted by 天地囚 at 2018-03-06 08:15:42
确定是非负函数。因为根据积分区间,可知0&lt;t&lt;s&lt;1,那么被积函数自然就是非负函数啊。
我知道用MATLAB算的话,一次积分就是负值,只是想知道为啥一个非负函数的积分用MATLAB算出来的是负值。...

可能积分顺序问题吧,直接用二重积分:

f =quad2d(@(s,t)((1-s).^(1/2)-(1-s).^(3/2)).*(s-t).^(1/2).*t.^(3/2),0,1,0,@(s)s)

f =

    0.0145
数值计算
6楼2018-03-06 21:34:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

天地囚

银虫 (小有名气)

引用回帖:
6楼: Originally posted by 独孤神宇 at 2018-03-06 21:34:30
可能积分顺序问题吧,直接用二重积分:

f =quad2d(@(s,t)((1-s).^(1/2)-(1-s).^(3/2)).*(s-t).^(1/2).*t.^(3/2),0,1,0,@(s)s)

f =

    0.0145...

这是数值积分,我的意思是想搞明白,为什么一个非负函数使用MATLAB计算符号积分(int命令)时,会出现负值(正如2楼所说的),这是很奇怪的事儿,让人不安。还是谢谢你的解答,提供了一种计算方法。
一心守道,道无穷,穷中有乐;万事随缘,缘有分,分外无求
7楼2018-03-09 16:31:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

引用回帖:
7楼: Originally posted by 天地囚 at 2018-03-09 16:31:45
这是数值积分,我的意思是想搞明白,为什么一个非负函数使用MATLAB计算符号积分(int命令)时,会出现负值(正如2楼所说的),这是很奇怪的事儿,让人不安。还是谢谢你的解答,提供了一种计算方法。...

可能是积分域的问题吧

发自小木虫Android客户端
数值计算
8楼2018-03-09 18:05:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 天地囚 的主题更新
信息提示
请填处理意见