14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
|
||||||
1 | ||||||
Не работает цикл while25.11.2019, 12:31. Показов 2159. Ответов 12
Всем привет. Формировал метод Якоби, хотел сделать вектор решений, где x_vectors[i][1] результат решения последней итерации, а x_vectors[i][0] результат предпоследней:
Код
[[ 0. -1.6 ] [ 0. -4.7 ] [ 0. 2. ] [ 0. -3.125]]
0
|
25.11.2019, 12:31 | |
Ответы с готовыми решениями:
12
Почему не работает цикл for in range . То есть он не повторяет вложенный в него цикл while Цикл: Подскажите мне, пожалуйста, почему цикл не работает? Цикл: как работает цикл в цикле Нерабочий цикл. Я не понимаю почему он не работает. Я выделил нерабочий цикл пометками. Знает ли кто то причину? |
25.11.2019, 14:20 | 2 |
SalavatGood, чудес не бывает.
Избавьтесь от глобалок, так вы точно ничего не отследите. И протестируйте ваши функции по отдельности. Добавлено через 38 секунд Да, и ещё можно использовать векторную запись numpy.
0
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||||||
25.11.2019, 15:07 | 3 | |||||
Неправильными выглядят строки 7, 8, 9. Похоже там пытались умножить строку матрицы на вектор, а вышло совсем не то.
Ну и ещё. В цикле while после первой итерации delta , очевидно, равна -1.6, что меньше, чем 0.01. Возможно сравнивать надо модуль delta ?
1
|
14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
|
||||||
26.11.2019, 10:52 [ТС] | 4 | |||||
grizlik78, в данной функции я пытался реализовать формулу(на фото):
0
|
26.11.2019, 11:03 | 5 |
SalavatGood, во-первых, не надо менять значения in-place. Запутаетесь. (Это допустимо в редких случаях ради быстродействия, тут не тот случай.)
Во-вторых, почему бы не использовать векторную запись? Похоже на обычное матричное произведение.
0
|
14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
|
|
26.11.2019, 11:12 [ТС] | 6 |
grizlik78, матрица x_vectors это вектор решений, где(как бы мне хотелось) 0-й столбец результат иксов предпоследней итерации, а 1-й столбец иксы последней итерации. Такая матрица мне как раз нужна, чтобы вычислить значение delta(максимальное значение/разница разности между иксами последней и предпоследней итерации). И delta сама же и является условием выхода из цикла, поскольку как только delta станет, допустим, < 0.01, то необходимая точность как раз таки будет достигнута. Задача вроде бы вполне легкая, но мне кажется, что мне знаний где-то не хватает, по скольку у меня когда я ввожу функции решения уравнения и перестановок столбцов(x_solving, permutation) в цикл while, у меня напрочь отказывается все работать как надо...
Добавлено через 2 минуты dondublon, матрицы тут не причем, я умножаю между собой элементы матриц с которыми работаю
0
|
14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
|
|
26.11.2019, 11:30 [ТС] | 8 |
dondublon,
не могу понять что это меняет, и вы имели в виду элементы в одну строку записать?
0
|
14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
|
|||||||||||
26.11.2019, 12:18 [ТС] | 10 | ||||||||||
dondublon, спасибо и вот еще я применил модуль для delta, но у меня функция перестановки(permutation) не корректно работает в цикле while:
Код
[[-0.35 -0.35 ] [-7.2 -7.2 ] [-0.67857143 -0.67857143] [-3.125 -3.125 ]] Вот функция перестановки, кстати:
0
|
14 / 13 / 1
Регистрация: 18.12.2018
Сообщений: 422
|
|||||||||||
06.12.2019, 12:21 [ТС] | 12 | ||||||||||
dondublon, я сам неправильно реализовал функцию permutation(не те столбцы присвоил), однако просто присвоение столбцов чуть чуть по другому сделал и все заработало:
0
|
06.12.2019, 13:24 | 13 |
SalavatGood, во-первых, в моём варианте используется векторность numpy.
Во-вторых, in-place - меняем прямо на месте, в противоположность подходу, когда старую переменную не меняем, а для результата создаём новую. Это в итоге проще для понимания.
1
|
06.12.2019, 13:24 | |
06.12.2019, 13:24 | |
Помогаю со студенческими работами здесь
13
Почему цикл for (java script) не работает в браузерах от гугла, яндекса, но работает в IE На Главной странице не работает правильно вывод (неккоректно работает цикл) Почему не работает цикл for in range . То есть for in range не повторяет вложенный в него цикл while Цикл работает неправильно, в то время как POST работает Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием... Не работает цикл Нк работает цикл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |