Статус: Administration Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member Зарегистрирован: 11.07.2008(UTC) Сообщений: 912 Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
|
уни, большое спасибо и за попытку решения задачи в SMath Studio и за прикреплённые файлы расчётов. Сегодня занимался ошибкой из-за которой не удаётся вычислить u10(x) и т.д. К сожалению проблема серьёзная и заставить существующую версию программы проделать это врятли возможно, но вот усовершенствовать программу так, что бы проблема более не возникала вполне можно, чему и посвящу своё время. Насчёт ускорения расчётов. Значения a и b зависят от вычисления интегралов и здесь есть простой способ ускорения. Дело в том, что если справа от знака присваивания стоит линия (функция line), то программа не производит никаких вычислений при встрече такого выражения, но вычисляет его при каждом вызове. Поэтому a и b вычисляются в Вашем расчёте каждый раз при вызове, что, конечно, очень негативно сказывается на скорости работы. Сейчас вычисление a выглядит так: a←line(for(ii←1,ii≤n,ii←ii+1,el(вых,ii)←2/T.u*int(s(x)*cos(ii*ω.1*x),x,0,T.u)),вых,2,1)Ускорить можно переписав формулу таким образом: for(ii←1,ii≤n,ii←ii+1,el(a,ii)←2/T.u*int(s(x)*cos(ii*ω.1*x),x,0,T.u))Т.е. тут SMath Studio определит переменную единожды и дальнейшие расчёты с переменной будут происходить намного быстрее. уни написал:Мне тоже лень пользоваться сторонними сервисами. Ради одного файла в пару десятков килобайт затевать файлообмен не интересно. Я предложил другой файлообменник не потому, что хочу отнять как можно больше времени, а потому, что вижу частое использование изображений в Ваших комментариях, которые через месяц-два более не будут доступны и другие пользователи, которые зайдут в эту тему позже их уже не увидят... что печально.
|