У меня есть ноутбук, предназначенный для исчерпывающего поиска чисел в массиве, используемом в уравнении, если уравнение равно определенной переменной, тогда оно возвращает значения переменных в уравнении. Единственная проблема заключается в том, что оператор If в последнем For-loop никогда не пробегает функции true/false/none. Единственный способ, которым я смог заставить его сделать что-либо, - использовать общий Print [blah], из которого он затем начинает печатать абсолютно каждую итерацию через все For-loops. Вот то, что я так далекоMathematica- Если утверждение не выполняется true/false
AvTarget := -95
arr := {1, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2, 2.2, 2.4, 2.7, 3, 3.3,
3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1, 10}
trueArr := {}
falseArr := {}
For[i = 1, i <= Length[arr], i = i + 1,
For[j = 1, j <= Length[arr], j = j + 1,
For[k = 1, k <= Length[arr], k = k + 1,
If[Abs[
AvTarget - (arr[[i]] + arr[[k]] + (arr[[i]] + arr[[k]])/
arr[[j]])] < 1000, Append[trueArr, {i, j, k}],
Append[falseArr, 1], Append[falseArr, 0]]
]
]
]
Length[trueArr]
Length[falseArr]
я не занимался с петлями в Mathematica еще, так что я не уверен, что проблема есть.
Edit- ИТАК этот код теперь работает так, как мне нужно это -
AvTarget = -95;
tol = 0.1;
arr := {1, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2, 2.2, 2.4, 2.7, 3, 3.3,
3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1, 10}
trueArr = {};
falseArr = {};
For[i = 1, i <= Length[arr], i++,
For[j = 1, j <= Length[arr], j++,
For[k = 1, k <= Length[arr], k++,
If[Abs[
AvTarget - (-(arr[[i]] + arr[[k]] + (arr[[i]]*arr[[k]])/
arr[[j]]))] <= tol,
trueArr = Append[trueArr, {arr[[i]], arr[[j]], arr[[k]]}],
Append[falseArr, 1], Append[falseArr, 0]]
]
]
]
Length[trueArr]
Оттуда, если длина> 0 Я могу только добавить, если отобразить результаты. Какой был бы лучший способ получить все результаты в пределах допустимого отпечатка в порядке, близком к AvTarget?
Ну, это довольно круто. Я включил этот код в него (и, спасибо, тоже могу использовать это довольно много в будущем), но он, похоже, не возвращает значения, когда я вызываю trueArr, есть ли какой-то конкретный способ, которым я должен это делать? –
Ой, нашел проблему, неуместную скобку, Abs подходит только для раздела AvTarget - equation. –