Ну с погрешностями есть два варианта:
1. точная априорная оценка, не твой случай, просто потому что 1 - точка разрыва, чем ближе к ней, тем больше становятся производные и оценка опять же даст бесконечность;
2. последовательно уменьшать шаг интегрирования (делить пополам) и смотреть на разность полученных результатов текущего и предыдущего шага, как только разность будет укладываться в погрешность можно остановиться - так делают, если нет лучших вариантов.
Касательно верхней границы, то я не думаю, что требуется учитывать эту погрешность при подсчетах, просто потому что оценка погрешности по 2 варианту и так неточная. Но ты можешь опять же отступ от верхней границы итеративно уменьшать, пока разность между итерациями не станет достаточно маленькой.
UPD. По поводу переноса в scilab, судя по всему все довольно топорно:
www.ibm.com/developerworks/ru/library/l-scilab1