Why does my code get stuck when trying to convert a double integral into a double?
조회 수: 1 (최근 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개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Number Theory에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!