求教大神matlab问题,怎么修改以下语句
ab=sym('[xy,xy,xy,xy]');ac=integral2(ab(3),0,1,0,1)错误:Errorusingintegral2(line83)Firs...
ab=sym('[xy,xy,xy,xy]');
ac=integral2(ab(3),0,1,0,1)
错误:
Error using integral2 (line 83)
First input argument must be a function handle. 展开
ac=integral2(ab(3),0,1,0,1)
错误:
Error using integral2 (line 83)
First input argument must be a function handle. 展开
展开全部
integral2是计算数值积分的,前面为什么要把ab定义成符号量?
1、用符号积分
>> ab=sym('[x*y,x*y,x*y,x*y]');
>> ac=int(int(ab(3),0,1),0,1)
ac =
1/4
2、用数值积分:
>> ac=integral2(@(x,y)x*y,0,1,0,1)
ac =
0.2500
追问
上面的这个是用来当例子的,其实是定义了一个很大的符号矩阵,都是一些不连续的二维函数,用int的话,应该无法积分吧,本人新手,求大神指导,多谢。
追答
那就试一下下面的做法吧:
>> dblquad(eval(sprintf('@(%s)%s',findsym(ab(3)),vectorize(char(ab(3))))),0,1,0,1)
ans =
0.2500
我的版本比较老,没有integral2函数,用dblquad代替。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询