How to take double integral of a function matrix?

20 Ansichten (letzte 30 Tage)
Muhammet Albayrak
Muhammet Albayrak am 19 Mai 2022
Kommentiert: Rik am 19 Mai 2022
Hello!
I have a matrix that consist of 2 variables (x,y) functions and i have to take double integral of it.
clear
clc
syms x y
a=1; b=1; t=1;
E=100/72; v=0.2;
x1=0; x2=b; x3=b; x4=0;
y1=0; y2=0; y3=a; y4=a;
B1 = [y-y4;0;x-x2];
B2 = [0;x-x2;y-y4];
B3 = [y3-y;0;x1-x];
B4 = [0;x1-x;y3-y];
B5 = [y-y2;0;x-x4];
B6 = [0;x-x4;y-y2];
B7 = [y1-y;0;x3-x];
B8 = [0;x3-x;y1-y];
B = [B1 B2 B3 B4 B5 B6 B7 B8];
D = (E/((1+v)*(1-2*v)))*[1-v v 0;v 1-v 0;0 0 0.5-v];
A = B.'*D*B
g = matlabFunction(A)
integral2(g,0,1,0,1)
I got this error.
Error using reshape
To RESHAPE the number of elements must not change.
Is there any possible way to convert symbolic function matrix to function handle in form of matrix? and how can i take integral of that matrix? otherwise i have to write every 64 equation seperately to take integral of them
  1 Kommentar
Rik
Rik am 19 Mai 2022
Regarding your flag ("It is my homework so and i don't think it will be helpful to answer common problems. I request it to be deleted. Best regards."): If you didn't want this question to be public you should not have posted. Now you have received an answer. It would be unkind to Catalytic to delete this thread. That is also why you no longer see delete button on your thread. Just in case you decide to edit away your question, I will make a copy here so it can be easily restored.
How to take double integral of a function matrix?
Hello!
I have a matrix that consist of 2 variables (x,y) functions and i have to take double integral of it.
clear
clc
syms x y
a=1; b=1; t=1;
E=100/72; v=0.2;
x1=0; x2=b; x3=b; x4=0;
y1=0; y2=0; y3=a; y4=a;
B1 = [y-y4;0;x-x2];
B2 = [0;x-x2;y-y4];
B3 = [y3-y;0;x1-x];
B4 = [0;x1-x;y3-y];
B5 = [y-y2;0;x-x4];
B6 = [0;x-x4;y-y2];
B7 = [y1-y;0;x3-x];
B8 = [0;x3-x;y1-y];
B = [B1 B2 B3 B4 B5 B6 B7 B8];
D = (E/((1+v)*(1-2*v)))*[1-v v 0;v 1-v 0;0 0 0.5-v];
A = B.'*D*B
g = matlabFunction(A)
integral2(g,0,1,0,1)
I got this error.
Error using reshape
To RESHAPE the number of elements must not change.
Is there any possible way to convert symbolic function matrix to function handle in form of matrix? and how can i take integral of that matrix? otherwise i have to write every 64 equation seperately to take integral of them

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Catalytic
Catalytic am 19 Mai 2022
syms x y
a=1; b=1; t=1;
E=100/72; v=0.2;
x1=0; x2=b; x3=b; x4=0;
y1=0; y2=0; y3=a; y4=a;
B1 = [y-y4;0;x-x2];
B2 = [0;x-x2;y-y4];
B3 = [y3-y;0;x1-x];
B4 = [0;x1-x;y3-y];
B5 = [y-y2;0;x-x4];
B6 = [0;x-x4;y-y2];
B7 = [y1-y;0;x3-x];
B8 = [0;x3-x;y1-y];
B = [B1 B2 B3 B4 B5 B6 B7 B8];
D = (E/((1+v)*(1-2*v)))*[1-v v 0;v 1-v 0;0 0 0.5-v];
A = B.'*D*B;
g = matlabFunction(A);
in1=@(fun) integral(fun,0,1,'ArrayValued',1);
out=in1( @(x) in1( @(y)g(x,y) ) )
out = 8×8
0.7073 0.2411 -0.4180 -0.0482 -0.3537 -0.2411 0.0643 0.0482 0.2411 0.7073 0.0482 0.0643 -0.2411 -0.3537 -0.0482 -0.4180 -0.4180 0.0482 0.7073 -0.2411 0.0643 -0.0482 -0.3537 0.2411 -0.0482 0.0643 -0.2411 0.7073 0.0482 -0.4180 0.2411 -0.3537 -0.3537 -0.2411 0.0643 0.0482 0.7073 0.2411 -0.4180 -0.0482 -0.2411 -0.3537 -0.0482 -0.4180 0.2411 0.7073 0.0482 0.0643 0.0643 -0.0482 -0.3537 0.2411 -0.4180 0.0482 0.7073 -0.2411 0.0482 -0.4180 0.2411 -0.3537 -0.0482 0.0643 -0.2411 0.7073

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by