I have 3 equations with 3 variables and I want a solution for the 3 of them. Moreover, I'm not really concerned for solutions outside of the range between 0 and 1. I tried using Solve to do this, but it's taking way too long. Any suggestions? Each of the 3 equations needs to be solved for 0. I need to do this several times (say, 20-30) so it would be optimal to have a way to do this that it wouldn't take the whole day and without having mathematica crashing in the middle of it.
Solve[{(-0.8702809089282518` + 1.2424405081409913` Y2^0.5` +
1.7541599570585076` Y2 + 1.2424405081409913` Y2^1.` -
1.2424405081409913` Y2^1.5` - 1.1056986938629452` Y2^2 -
1.2424405081409913` Y2^2.` + 0.3397298264448023` Y2^2.5` +
0.2218196457326892` Y2^3 + 0.3397298264448023` Y2^3.` +
Y1^2 (-0.016997674002504914` + 0.02773304705671855` Y2^0.5` +
0.016997674002504914` Y2 + 0.02773304705671855` Y2^1.`) +
Y0^2 (-0.10623546251565573` + 0.17333154410449098` Y2^0.5` +
0.10623546251565573` Y2 + 0.17333154410449098` Y2^1.`) +
Y1 (0.2447665056360708` - 0.35498300232599744` Y2^0.5` -
0.3705492932546072` Y2 - 0.35498300232599744` Y2^1.` +
0.16085167292896763` Y2^1.5` + 0.1257827876185364` Y2^2 +
0.16085167292896763` Y2^2.`) +
Y0 (0.6119162640901772` - 0.8874575058149936` Y2^0.5` -
0.926373233136518` Y2 - 0.8874575058149936` Y2^1.` +
0.402129182322419` Y2^1.5` + 0.314456969046341` Y2^2 +
0.402129182322419` Y2^2.` +
Y1 (-0.08498837001252461` + 0.13866523528359276` Y2^0.5` +
0.08498837001252461` Y2 +
0.13866523528359276` Y2^1.`)))/((1.` +
Y2^0.5`) (1.7777777777777777` - 0.5555555555555556` Y0 -
0.2222222222222222` Y1 - 1.` Y2)^2 Y2^0.5` (-8.` + 5.` Y0 +
2.` Y1 + 1.` Y2)) == 0,
1/(3 + Y0^0.5` + 2 Y1^0.5`)^2 ((
0.03668478260869564` (1 + Y0^0.5`) (3 + Y0^0.5` +
2 Y1^0.5`) (3 - Y0 - 2 Y1))/(3 - 1.4375` Y0 - 1.375` Y1 -
0.1875` Y2)^2 + (
0.07336956521739128` (1 + Y1^0.5`) (3 + Y0^0.5` +
2 Y1^0.5`) (3 - Y0 - 2 Y1))/(3 - 1.4375` Y0 - 1.375` Y1 -
0.1875` Y2)^2 + (
0.16843100189035914` (1.` + Y0^0.5`) (3.` + Y0^0.5` +
2.` Y1^0.5`) (-1.9393939393939392` + 1.` Y0 +
0.7878787878787878` Y1 +
0.15151515151515152` Y2))/((-2.0869565217391304` + 1.` Y0 +
0.9565217391304348` Y1 + 0.13043478260869565` Y2) (-1.6` +
1.` Y0 + 0.4` Y1 + 0.2` Y2)) - (
0.08421550094517957` (1.` + Y0^0.5`) (-3.` + Y0 +
2.` Y1) (-1.9393939393939392` + 1.` Y0 +
0.7878787878787878` Y1 + 0.15151515151515152` Y2))/(
Y1^0.5` (-2.0869565217391304` + 1.` Y0 +
0.9565217391304348` Y1 + 0.13043478260869565` Y2) (-1.6` +
1.` Y0 + 0.4` Y1 + 0.2` Y2)) + (
0.21521739130434786` (3.` + Y0^0.5` + 2.` Y1^0.5`) (-3.` + Y0 +
2.` Y1) (-1.9393939393939392` + 1.` Y0 +
0.7878787878787878` Y1 + 0.15151515151515152` Y2))/(
Y1^0.5` (-2.0869565217391304` + 1.` Y0 +
0.9565217391304348` Y1 + 0.13043478260869565` Y2) (-1.6` +
1.` Y0 + 0.4` Y1 + 0.2` Y2)) + (
0.693675889328063` (1.` + Y1^0.5`) (3.` + Y0^0.5` +
2.` Y1^0.5`) (-2.4615384615384612` +
1.2692307692307692` Y0 + 1.` Y1 +
0.1923076923076923` Y2))/((-2.1818181818181817` +
1.0454545454545454` Y0 + 1.` Y1 +
0.13636363636363635` Y2) (-4.` + 2.5` Y0 + 1.` Y1 +
0.5` Y2)) - (
0.3468379446640315` (1.` + Y1^0.5`) (-3.` + Y0 +
2.` Y1) (-2.4615384615384612` + 1.2692307692307692` Y0 +
1.` Y1 + 0.1923076923076923` Y2))/(
Y1^0.5` (-2.1818181818181817` + 1.0454545454545454` Y0 +
1.` Y1 + 0.13636363636363635` Y2) (-4.` + 2.5` Y0 + 1.` Y1 +
0.5` Y2))) ==
0, -((0.007561436672967865` (1.` + Y0^0.5`) (-3.` + Y0 +
2.` Y1))/((3.` + Y0^0.5` +
2.` Y1^0.5`) (2.0869565217391304` - 1.` Y0 -
0.9565217391304348` Y1 - 0.13043478260869565` Y2)^2)) - (
0.01512287334593573` (1.` + Y1^0.5`) (-3.` + Y0 + 2.` Y1))/((3.` +
Y0^0.5` + 2.` Y1^0.5`) (2.0869565217391304` - 1.` Y0 -
0.9565217391304348` Y1 - 0.13043478260869565` Y2)^2) + (
0.031558185404339245` -
0.031558185404339245` Y0)/(1.2307692307692308` - 1.` Y0 -
0.15384615384615385` Y1 -
0.07692307692307693` Y2)^2 + (-0.3282051282051282` +
0.2512820512820513` Y0 + 0.05128205128205128` Y1 +
0.02564102564102564` Y2)/((-1.2307692307692308` + 1.` Y0 +
0.15384615384615385` Y1 + 0.07692307692307693` Y2) (-1.6` +
1.` Y0 + 0.4` Y1 + 0.2` Y2)) + (
0.2512820512820513` (-1.` + Y0) (-1.306122448979592` + 1.` Y0 +
0.20408163265306123` Y1 + 0.10204081632653061` Y2))/((1.` +
Y0^0.5`) Y0^0.5` (-1.2307692307692308` + 1.` Y0 +
0.15384615384615385` Y1 + 0.07692307692307693` Y2) (-1.6` +
1.` Y0 + 0.4` Y1 + 0.2` Y2)) + (
0.07173913043478261` (1.` + Y0^0.5`) (-1.9393939393939394` +
1.` Y0 + 0.787878787878788` Y1 +
0.15151515151515155` Y2))/((3.` + Y0^0.5` +
2.` Y1^0.5`) (-2.0869565217391304` + 1.` Y0 +
0.9565217391304348` Y1 + 0.13043478260869565` Y2) (-1.6` +
1.` Y0 + 0.4` Y1 + 0.2` Y2)) + (
0.14347826086956522` (1.` + Y1^0.5`) (-1.9393939393939394` +
1.` Y0 + 0.787878787878788` Y1 +
0.15151515151515155` Y2))/((3.` + Y0^0.5` +
2.` Y1^0.5`) (-2.0869565217391304` + 1.` Y0 +
0.9565217391304348` Y1 + 0.13043478260869565` Y2) (-1.6` +
1.` Y0 + 0.4` Y1 + 0.2` Y2)) - (
0.035869565217391305` (1.` + Y0^0.5`) (-3.` + Y0 +
2.` Y1) (-1.9393939393939394` + 1.` Y0 +
0.787878787878788` Y1 + 0.15151515151515155` Y2))/(
Y0^0.5` (3.` + Y0^0.5` + 2.` Y1^0.5`)^2 (-2.0869565217391304` +
1.` Y0 + 0.9565217391304348` Y1 +
0.13043478260869565` Y2) (-1.6` + 1.` Y0 + 0.4` Y1 +
0.2` Y2)) - (
0.07173913043478261` (1.` + Y1^0.5`) (-3.` + Y0 +
2.` Y1) (-1.9393939393939394` + 1.` Y0 +
0.787878787878788` Y1 + 0.15151515151515155` Y2))/(
Y0^0.5` (3.` + Y0^0.5` + 2.` Y1^0.5`)^2 (-2.0869565217391304` +
1.` Y0 + 0.9565217391304348` Y1 +
0.13043478260869565` Y2) (-1.6` + 1.` Y0 + 0.4` Y1 +
0.2` Y2)) + (
0.10760869565217392` (-3.` + Y0 + 2.` Y1) (-1.9393939393939394` +
1.` Y0 + 0.787878787878788` Y1 + 0.15151515151515155` Y2))/(
Y0^0.5` (3.` + Y0^0.5` + 2.` Y1^0.5`) (-2.0869565217391304` +
1.` Y0 + 0.9565217391304348` Y1 +
0.13043478260869565` Y2) (-1.6` + 1.` Y0 + 0.4` Y1 +
0.2` Y2)) == 0, 0 <= Y2 <= 1, 0 <= Y1 <= 1, 0 <= Y0 <= 1}, {Y2,
Y1, Y0}]
0 <= Y2 <= 1, 0 <= Y1 <= 1, 0 <= Y0 <= 1}
, useFindRoot
instead ofSolve
, and replace{Y2, Y1, Y0}
with{{Y2, 0.3}, {Y1, 0.2}, {Y0, 0.1}}
. You should get as the answer{Y2 -> 0.169988, Y1 -> 0.209275, Y0 -> 0.290306}
(which satisfies your constraints). $\endgroup$FindRoot
are not critical in this instance. Look atSeedRandom[0]; Table[ FindRoot[eqns, {{Y2, RandomReal[]}, {Y1, RandomReal[]}, {Y0, RandomReal[]}}], {10}]
$\endgroup$