Why does my code get stuck when trying to convert a double integral into a double?
14 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Walter Roberson
2023-5-4
if you are after the numeric solution then switch to vpaintegral()
8 个评论
Walter Roberson
2023-5-5
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.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!