Доброго времени суток.
Уже довольно давно пользуюсь версией 0.98.6179.21440 (Portable). В ней создано довольно много расчетов (некоторые из них очень сложны и многостраничны).
Посмотрел версию 0.99.6671.38791. Визуально стало красивее, но это не особо важно, ведь не зря новые версии появляются (за 2 года довольно много изменений).
Открыл в новой версии один из довольно сложных расчетов и обнаружил, что расчет происходит с ошибками.
Что такое было изменено в программе, приведшее к подобным проблемам? Есть какое то описание (наверняка что то важное изменилось).
Например в версии 0.98.6179.21440:
А в версии 0.99.6671.38791 тоже место в расчете (программа сообщает "Не могу вычислить" - без подробностей):
Что например в этом месте нужно поменять? Какие еще проблемы могут быть?
Спасибо!
Потестировал:
Сначала подумал проблема, что внутри цикла нельзя писать несколько вычислений и разбил на части - в процессе обнаружил проблему с одной из строк:
Если убрать именно эту строку из первоначальной записи все нормально.
Только вот не могу понять что не так с этой строкой - ничего особенного: для всех строк используется по сути одна матрица и при подстановке конкретного номера строки все нормально вычисляется, а вот матрица не формируется (в старой версии все нормально):
Перенес часть расчета в новый файл - ошибки нет.
Problema 1.sm (7kb) downloaded 13 time(s).Я в недоумении
Связавшись с разработчиком программы выяснилось следующее:
"1) Первая ошибка, которая в нём возникает связана с тем, что в расчёте одни и те же переменные (γ.II, ξ, φ.II, c.II) используются для разных типов данных. Вначале они определены как скаляры, а ниже уже в них происходит запись данных по индексу. Программа полагает, что при этом может произойти неожиданная потеря данных. Потому расчёт прерывается. Дабы исключить эту ошибку, необходимо просто очистить такие переменные: Clear(γ.II,ξ,φ.II,c.II)
2) Вторая ошибка может возникнуть из-за известной ошибки в старых версиях SMath Studio, которая иногда некорректно записывала данные в файл. В некоторых случаях, после открытия (зависит от локали компьютера) она могла не опознать такие функции, как tg(..), ctg(..) и т.п. Исправляется это просто: tg(x):tan(x). Ну или все места, где есть tg(..) нужно ввести заново."
Edited by user 19 August 2018 22:53:03(UTC)
| Reason: Решение проблемы