Evaluating polynomial functions to get integer as answer
1 次查看(过去 30 天)
显示 更早的评论
I am trying to evaluate:
syms x y
eq = (x^2 + y^3 == 31)
solve(eq)
eqs = [x^2 + y^3 == 31, x^2 == 31 - y^3]
S = solve(eq,[x y])
S.x and S.y still not 2 and 3
i am expecting to get as answer two integer: x=2 and y=3. How can i do it?
Thanks
0 个评论
采纳的回答
Walter Roberson
2021-4-4
编辑:Walter Roberson
2021-4-4
syms x y integer
eq = (x^2 + y^3 == 31)
solx = solve(eq,x,'returnconditions',true)
soly = solve(solx.conditions)
X = subs(solx.x,y,soly)
Y = soly
Caution: this kind of process will not generally attempt to find more than one solution for solx.conditions. But you could
soly = solve(eq,y,'returnconditions',true)
solx = arrayfun(@solve, soly.conditions, 'uniform', 0)
X = solx{2}
Y = subs(soly.y(2), x, X)
0 个评论
更多回答(1 个)
darova
2021-4-4
solve can be used for simple problems. Use fsolve or vpasolve to get numerical results
1 个评论
Walter Roberson
2021-4-4
Not the point. The point is that solve() is having difficulty processing integer constraints in this case. fsolve and vpasolve have no chance of processing integer constraints.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!