我需要计算这种积分
我在一个函数中定义了两个f(x,y)
和g(x,y)
h = {@(x,y) f, @(x,y) g};
其中f
和g
是之前定义的公式。这样,我有一个1x2的像元,我想将标量积计算为
F = @(x,y) dot(h,E)
其中E
是矢量2x1,然后进行积分
int = integral2(F,a,b,c,d);
给我这个错误
Undefined function 'conj' for input arguments of type 'cell'.
Error in dot (line 37)
c = sum(conj(a).*b);
Error in tm_np>@(R,PHI)dot(e_n_even,E)
Error in integral2Calc>integral2t/tensor (line 228)
Z = FUN(X,Y); NFE = NFE + 1;
Error in integral2Calc>integral2t (line 55)
[Qsub,esub] = tensor(thetaL,thetaR,phiB,phiT);
Error in integral2Calc (line 9)
[q,errbnd] = integral2t(fun,xmin,xmax,ymin,ymax,optionstruct);
Error in integral2 (line 106)
Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
我不明白为什么会给我这个错误。由于积分的结果,我应该有一个2x1向量
答案 0 :(得分:0)
问题在于您的数据生成。 integral2
仅接受将@(x,y)
作为 vector 输入并返回相同大小的函数。在您的情况下,h
还不是,F
没有@(x,y)
输入(嗯,有输入,但是您决定不将它们传递给h
!!!)
% sample data
f=@(x,y)x.^2+y;
g=@(x,y)y.^2+x+3;
E=[3 1];
% Create auxiliary fucntion
mydot=@(x,y)(f(x,y).*E(1)+g(x,y).*E(2));
% work
int = integral2(mydot,0,3,1,5);