Trying to solve a double integral with matricies
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, so I have this array presented as a matrix. I am trying to solve it using a double integral function, but MATLAB returns me multiple codes, any suggestions?
k1matrix2 = [ (((2818572279544283*x)/268435456 - 2818572279544283/536870912)*(x - 1/2))/4 + (((4831838193504485*x)/536870912 - 4831838193504485/1073741824)*(y - 1/2))/4, (((8053063655840809*x)/268435456 - 8053063655840809/536870912)*(x - 1/2))/4 + (((2818572279544283*x)/268435456 - 2818572279544283/536870912)*(x - 1/2))/4, - (((2818572279544283*x)/268435456 - 2818572279544283/536870912)*(x + 1/2))/4 - (((4831838193504485*x)/536870912 - 4831838193504485/1073741824)*(y - 1/2))/4, - (((8053063655840809*x)/268435456 - 8053063655840809/536870912)*(x + 1/2))/4 - (((2818572279544283*x)/268435456 - 2818572279544283/536870912)*(y - 1/2))/4, (((2818572279544283*x)/268435456 - 2818572279544283/536870912)*(x + 1/2))/4 + (((4831838193504485*x)/536870912 - 4831838193504485/1073741824)*(y + 1/2))/4, (((8053063655840809*x)/268435456 - 8053063655840809/536870912)*(x + 1/2))/4 + (((2818572279544283*x)/268435456 - 2818572279544283/536870912)*(y + 1/2))/4, - (((2818572279544283*x)/268435456 - 2818572279544283/536870912)*(x - 1/2))/4 - (((4831838193504485*x)/536870912 - 4831838193504485/1073741824)*(y + 1/2))/4, - (((8053063655840809*x)/268435456 - 8053063655840809/536870912)*(x - 1/2))/4 - (((2818572279544283*x)/268435456 - 2818572279544283/536870912)*(y + 1/2))/4];
fun1= matlabFunction(k1matrix2(:,1));
fun2= matlabFunction(k1matrix2(:,2));
fun3= matlabFunction(k1matrix2(:,3));
fun4= matlabFunction(k1matrix2(:,4));
fun5= matlabFunction(k1matrix2(:,5));
fun6= matlabFunction(k1matrix2(:,6));
fun7= matlabFunction(k1matrix2(:,7));
fun8= matlabFunction(k1matrix2(:,8));
fun = {fun1,fun2,fun3,fun4,fun5,fun6,fun7,fun8};
double_int= @(func) integral2(func,-0.5,0.5,-0.5,0.5);
dblk12 = cellfun(double_int,fun)
Error using
symengine>@(x)(x.*2.999999991e7-1.4999999955e7).*(x-1.0./2.0).*(1.0./4.0)+(x.*1.04999999685e7-5.24999998425e6).*(x-1.0./2.0).*(1.0./4.0)
Too many input arguments.
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);
Error in @(func)integral2(func,-0.5,0.5,-0.5,0.5)
0 commentaires
Réponses (1)
Walter Roberson
le 12 Nov 2019
fun2 does not happen to involve y. By default matlabFunction generates one input for each variable used, so for fun2 it would generate a function of only one variable; for all of the rest it is generating a function of two variables.
You should use 'vars', [x y] as an option to your matlabFunction call.
0 commentaires
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!