Why does my code get stuck when trying to convert a double integral into a double?
14 views (last 30 days)
Show older comments
Guillermo
on 4 May 2023
Commented: Walter Roberson
on 5 May 2023
syms x y z
f(x,y) = sqrt(1+((4*y)/(121*sqrt((4*x^2)/121 + (4*y^2)/121))^2)+((4*x)/(121*sqrt((4*x^2)/121 + (4*y^2)/121))^2))
minX= -sqrt(220.523)
maxX= sqrt(220.523) %input("Limite superior de X:")
intX = int(f,x,minX,maxX)
minY= -sqrt(220.523-x^2) %input("Limite inferior de Y:")
maxY= sqrt(220.523-x^2) %input("Limite superior de Y:")
intY = int(f,y,minY,maxY)
integralDobleTipoUno = int(intY,x,minX,maxX)
integralDobleTipoDos= int(intX,y,minY,maxY)
var = double(integralDobleTipoUno)
When reaching "var", it loads forever
0 Comments
Accepted Answer
Walter Roberson
on 4 May 2023
if you are after the numeric solution then switch to vpaintegral()
8 Comments
Walter Roberson
on 5 May 2023
format long g
syms x y z
magic_number = sym(220523)/1000;
f(x,y) = sqrt(1+((4*y)/(121*sqrt((4*x^2)/121 + (4*y^2)/121))^2)+((4*x)/(121*sqrt((4*x^2)/121 + (4*y^2)/121))^2));
maxX = sqrt(magic_number); %input("Limite superior de X:")
minX = -maxX;
intX = int(f,x,minX,maxX);
maxY = sqrt(magic_number-x^2); %input("Limite superior de Y:")
minY = -maxY;
intY = int(f,y,minY,maxY);
Sf = simplify(f, 'steps', 50)
Tx = 0; Ty = -1/200;
combine(subs(maxY, x, Tx))
That tells us that for x = 0, that y = -1/200 is well within range
temp = simplify(limit(f, x, Tx), 'steps', 50)
y_bound = solve(children(temp, 1))
limit(limit(f, x, Tx), y, Ty)
but we got a complex-valued result.
This tells us that the complex component we got was not an accident: there is a range of values where f goes complex.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!