+ Ответить в теме
Показано с 1 по 15 из 15

Тема: Нужна помощь.

  1. #1
    Юзер JAMIS кто это? Аватар для JAMIS
    Регистрация
    10.03.2009
    Адрес
    Центр
    Возраст
    31
    Сообщений
    168
    Поблагодарил(а)
    151
    Получено благодарностей: 27 (сообщений: 20).

    По умолчанию Нужна помощь.

    Лабораторная по информатике, Паскаль. Вроде все нормально у меня шло, но произошёл ступор. Прошу помощи у препода, а она даже не реагирует. А зачёт мне ой как нужен! Так что прошу Вас люди соображающие в этом деле: Помогите пожалуйста!
    Миниатюры Миниатюры Безымянный.JPG‎  

  2. #2
    Почти гений геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты Аватар для геннадий
    Регистрация
    02.08.2005
    Сообщений
    1,607
    Поблагодарил(а)
    95
    Получено благодарностей: 437 (сообщений: 283).

    По умолчанию

    Цитата Сообщение от JAMIS Посмотреть сообщение
    Лабораторная по информатике, Паскаль. Вроде все нормально у меня шло, но произошёл ступор. Прошу помощи у препода, а она даже не реагирует. А зачёт мне ой как нужен! Так что прошу Вас люди соображающие в этом деле: Помогите пожалуйста!
    А до какого места шло нормально, а в каком ступорнулся?

    1)Настройка цикла, границы, шаг
    2)Требование вычислить логарифм разложением в ряд - это подпрограмма. Только такие итерационные вычисления обрывают не на 15-м или 150-м слагаемом, а по достижении достаточной точности.
    3) Не обусловлено, куда девать вычисленное. Можно хранить в массиве, можно выдавать по мере получения. Первое грамотней.
    4) Грамматика языка

    Добавлено через 16 минут
    Проверил формулу ряда. Она действительно работает, но точность (т.е. количество требуемых слагаемых) зависит от z. 15 слагаемых для z=3 дают ошибку обрыва в 12-м знаке, а для z=4 – уже в 9-м знаке.

    Вычисление рядов лучше организовать рекуррентно, текущее слагаемое вычислять через предыдущее. Формулы арифметически легче.
    Последний раз редактировалось геннадий; 27.12.2009 в 17:50. Причина: Добавлено сообщение

  3. #3
    Почти гений геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты Аватар для геннадий
    Регистрация
    02.08.2005
    Сообщений
    1,607
    Поблагодарил(а)
    95
    Получено благодарностей: 437 (сообщений: 283).

    По умолчанию

    Бейсик (не Паскаль) на русском вперемешку с подготовительными выкладками. Интересно, что услышу завтра....
    Вложения
    Последний раз редактировалось геннадий; 27.12.2009 в 22:41.

  4. #4
    Юзер JAMIS кто это? Аватар для JAMIS
    Регистрация
    10.03.2009
    Адрес
    Центр
    Возраст
    31
    Сообщений
    168
    Поблагодарил(а)
    151
    Получено благодарностей: 27 (сообщений: 20).

    По умолчанию

    Хм... вся проблема что я в математике плохо шарю - вот весь казус...:( И оказывается нифига не нормально всё шло >_<

  5. #5
    Почти гений геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты Аватар для геннадий
    Регистрация
    02.08.2005
    Сообщений
    1,607
    Поблагодарил(а)
    95
    Получено благодарностей: 437 (сообщений: 283).

    По умолчанию

    Цитата Сообщение от JAMIS Посмотреть сообщение
    проблема что я в математике плохо шарю

    А я в Паскале не силен

    Алгоритм будет работать, его можно реализовать
    - в Маткаде
    - в БЕйсике
    - в Екселе
    - в Паскале
    Алгоритм и в Африке алгоритм. Тебе только его нужно приладить к языку. Математика здесь этап пройденный.

  6. #6
    Джедай sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе Аватар для sda
    Регистрация
    01.06.2007
    Адрес
    Москва
    Возраст
    46
    Сообщений
    8,326
    Поблагодарил(а)
    303
    Получено благодарностей: 2,545 (сообщений: 1,638).

    По умолчанию

    Ну вы даете... простейший сходящийся ряд - а вы точность оценить не можете (хотя по заданию она не нужна)

    Точность этого ряда (разность 0,5ln(x)-(этот жутки ряд вычисленный до n членов)) равна (на интервале от 3 до 4, в первой оценке)
    {(3/4)^(2n+1)}*9/(16*(2n+3)) она зависит действительно от x, но я взял максимум на интервале от 3 до 4

    Так для 15 членов, разность получается не более чем 2,28*10^-6 т.е. действительно гарантированно до 5 знака

  7. #7
    Почти гений геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты Аватар для геннадий
    Регистрация
    02.08.2005
    Сообщений
    1,607
    Поблагодарил(а)
    95
    Получено благодарностей: 437 (сообщений: 283).

    По умолчанию

    Цитата Сообщение от sda Посмотреть сообщение
    Ну вы даете... простейший сходящийся ряд - а вы точность оценить не можете (хотя по заданию она не нужна)

    Точность этого ряда (разность 0,5ln(x)-(этот жутки ряд вычисленный до n членов)) равна (на интервале от 3 до 4, в первой оценке)
    {(3/4)^(2n+1)}*9/(16*(2n+3)) она зависит действительно от x, но я взял максимум на интервале от 3 до 4

    Так для 15 членов, разность получается не более чем 2,28*10^-6 т.е. действительно гарантированно до 5 знака
    Знакочередующиеся ряды оценивать просто: погрешность обрыва не превышает первого из отброшенных членов. Этот ряд знакоположительный, для него метода оценки у меня и вправду нет. Научите - будет.

    Я приводил не оценочную погрешность обрыва, а истинную.

    Добавлено через 19 минут
    Есть интегральный признак сходимости рядов.
    Идея этого метода подходит и для оценки погрешности обрыва. Считаем интеграл от n до бесконечности - это и будет искомое. Что сейчас и попробую реализовать. Если получится - напишу.


    Получилось - смотрите
    Вложения
    Последний раз редактировалось геннадий; 30.12.2009 в 23:01. Причина: Добавлено сообщение

  8. #8
    Джедай sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе Аватар для sda
    Регистрация
    01.06.2007
    Адрес
    Москва
    Возраст
    46
    Сообщений
    8,326
    Поблагодарил(а)
    303
    Получено благодарностей: 2,545 (сообщений: 1,638).

    По умолчанию

    Вот, правда я где то ошибся, но метод понятен, перерешивать лень
    Вложения

  9. #9
    Почти гений геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты Аватар для геннадий
    Регистрация
    02.08.2005
    Сообщений
    1,607
    Поблагодарил(а)
    95
    Получено благодарностей: 437 (сообщений: 283).

    По умолчанию

    Цитата Сообщение от sda Посмотреть сообщение
    Вот, правда я где то ошибся, но метод понятен, перерешивать лень
    Выше была оценка -в 6-м знаке; теперь - в 24-м. Где истина? И главное: рассмотрен частный случай? Общего метода нет?

    Мои результаты (не мои 100-пудово, а один от екселя, второй от маткада) практически совпали...

    Я почему так критически отношусь к задачкам по программированию? Мне попадались совершенно некорректные задачи. Не дружит кафедра вычтеха с математикой. Вот и проверяю, мало ли что они напишут...
    Последний раз редактировалось геннадий; 30.12.2009 в 22:24.

  10. #10
    Джедай sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе Аватар для sda
    Регистрация
    01.06.2007
    Адрес
    Москва
    Возраст
    46
    Сообщений
    8,326
    Поблагодарил(а)
    303
    Получено благодарностей: 2,545 (сообщений: 1,638).

    По умолчанию

    Да, похоже что общего метода, пригодного для программирования нет. А для истина надо нормальный калькулятор, т.к. мой что то явно заглючил, т.к. (3/5)^33 явно не должен давать 10^-33 даже близко, видимо с калькуляторами я не оч. дружу

  11. #11
    Почти гений геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты Аватар для геннадий
    Регистрация
    02.08.2005
    Сообщений
    1,607
    Поблагодарил(а)
    95
    Получено благодарностей: 437 (сообщений: 283).

    По умолчанию

    Цитата Сообщение от sda Посмотреть сообщение
    Да, похоже что общего метода, пригодного для программирования нет. А для истина надо нормальный калькулятор, т.к. мой что то явно заглючил, т.к. (3/5)^33 явно не должен давать 10^-33 даже близко, видимо с калькуляторами я не оч. дружу
    Отчего же? Нашелся.

    Итак,
    Ряд - последовательность частичных сумм
    Ряд может быть сходящимся
    Ряд сходящийся, если сходится соответствующий интеграл

    График последовательности - цепочка точек.
    Общий член ряда, претендующего на сходимость, стремится к нулю
    Сумма ряда - площадь гистограммы (частокола столбиков), построенной на этой цепочке точек
    Интеграл - площадь криволинейной трапеции. Эту криволинейную трапецию можно зажать между двумя гистограммами, что по теореме о двух милиционерах означает возможность замены точной площади гистограммы оценочной площадью криволинейной трапеции.

    Интегралы вычислять - дело маткада.
    Погрешность обрыва не превышает интеграла, левая граница которого соответствует первому из отброшенных.

    График и гистограмму см выше файл "Ошибка обрыва"

    Годится?

    Добавлено через 17 минут
    Цитата Сообщение от sda Посмотреть сообщение
    Да, похоже что общего метода, пригодного для программирования нет. А для истина надо нормальный калькулятор, т.к. мой что то явно заглючил, т.к. (3/5)^33 явно не должен давать 10^-33 даже близко, видимо с калькуляторами я не оч. дружу
    Это я не то написал: 33 и 24 перепутал

    Оффтопик
    Последний раз редактировалось геннадий; 30.12.2009 в 23:09. Причина: Добавлено сообщение

  12. #12
    Джедай sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе sda Разбег по полосе Аватар для sda
    Регистрация
    01.06.2007
    Адрес
    Москва
    Возраст
    46
    Сообщений
    8,326
    Поблагодарил(а)
    303
    Получено благодарностей: 2,545 (сообщений: 1,638).

    По умолчанию

    Может и сгодится с пользовательской т.з., но дело в том, что у вычисленного на компьютере интеграла тоже есть какая то неизвестная точность, т.к. вычисляется он компьютером. Она конечно мала, но неизвестна.(хотя не знаю, маткад сообщает о точности интеграла?)
    У учитывая что компьютерное вычисление интеграла состоит скорее всего в том же суммировании значений подынтегральной функции, то ваш общий метод получился кратко таким:
    - Как методом вычислить точность суммы 15 членов?
    - Вычислить идущие дальше, после обрыва миллион членов, с большой точностью это даст ответ.
    Последний раз редактировалось sda; 31.12.2009 в 11:20.

  13. #13
    Почти гений геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты Аватар для геннадий
    Регистрация
    02.08.2005
    Сообщений
    1,607
    Поблагодарил(а)
    95
    Получено благодарностей: 437 (сообщений: 283).

    По умолчанию

    Цитата Сообщение от sda Посмотреть сообщение
    Может и сгодится с пользовательской т.з., но дело в том, что у вычисленного на компьютере интеграла тоже есть какая то неизвестная точность, т.к. вычисляется он компьютером. Она конечно мала, но неизвестна.(хотя не знаю, маткад сообщает о точности интеграла?)
    У учитывая что компьютерное вычисление интеграла состоит скорее всего в том же суммировании значений подынтегральной функции, то ваш общий метод получился кратко таким:
    - Как методом вычислить точность суммы 15 членов?
    - Вычислить идущие дальше, после обрыва миллион членов, с большой точностью это даст ответ.
    Не просто суммирование. Есть итерационные алгоритмы, сходящиеся к точному значению. Маткад использует все достижения математики, матанализа в частности, я ему верю: если он выдает что-то конкретное, это почти наверное правильно. Конечно, контрольные действия нужны.

    Как оценить точность суммы 15 членов? В общем виде эта сумма - некоторая элементарная функция конечного числа аргументов. Есть формула, через производные связывающая их погрешности и погрешность на выходе. Значения производных при выгодных схемах вычислений малы, при невыгодных - велики. Но и без тщательных вычислений можно сказать, что погрешность накапливается пропорционально корню из количества действий. 15 членов = 100 действий —> погрешность вырастет на порядок. Две лишних цифры в вычислениях гарантируют достаточную точность.

    Как вычислить бесконечный ряд? Для геометрической прогрессии простая формула есть. Если ряд сходится, что следует опознать по известному алгоритму, то для него и метод вычисления известен (Маткаду). Вычислив, получим , в нашем частном случае, погрешность обрыва для конечного числа слагаемых ряда.

    Т. е. имеются алгоритмы для вычисления с наперед заданной погрешностью (напомню, одно из свойств алгоритма - конечное количество операций).

    Когда Маткад не выдает результат, то пишет красным сообщения о причине. Они чаще непонятны (на американском ведь языке!). Тут уж надо думать самому и искать пути обхода.

    И еще момент интересный. В программе есть команда float n, после которой выдается n знаков за запятой (до 250; число похоже на 2^8 - 6, кажется, под n выделен 1 байт). Надо полагать, все они верные, иначе не стоило огород городить. Это значит, что в программе реализована процедура вычислений, когда одно число занимает не одну и не две ячейки памяти, а сколько требуется по предвычислению. Вот это да!
    Последний раз редактировалось геннадий; 31.12.2009 в 17:23.

  14. #14
    Юзер JAMIS кто это? Аватар для JAMIS
    Регистрация
    10.03.2009
    Адрес
    Центр
    Возраст
    31
    Сообщений
    168
    Поблагодарил(а)
    151
    Получено благодарностей: 27 (сообщений: 20).

    По умолчанию


    Оффтопик

  15. #15
    Почти гений геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты геннадий Набираю обороты Аватар для геннадий
    Регистрация
    02.08.2005
    Сообщений
    1,607
    Поблагодарил(а)
    95
    Получено благодарностей: 437 (сообщений: 283).

    Smile

    Цитата Сообщение от JAMIS Посмотреть сообщение
    я в шоке... О_О

    А можно фото шока?

    Само задание неинтересно, таких много видывал, а вот доведение его до логического завершения стоит усилий.

    Кстати, в Екселе есть Таблицы_подстановки, аналог подпрограммы. Приспособил к твоей задач, весьма подошло.
    Вложения
    Последний раз редактировалось геннадий; 03.01.2010 в 15:52.

  16. 1 пользователь сказал cпасибо геннадий за это полезное сообщение:

    JAMIS (04.01.2010)

+ Ответить в теме

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Похожие темы

  1. Нужна помощь по c++
    от FAN в разделе C++
    Ответов: 4
    Последнее сообщение: 08.06.2010, 00:17
  2. Нужна Помощь
    от skyer в разделе Software
    Ответов: 4
    Последнее сообщение: 30.03.2007, 11:05
  3. Нужна помощь - ASP.Net / C#
    от den-grishin в разделе Языки
    Ответов: 2
    Последнее сообщение: 15.12.2006, 01:25
  4. Нужна помощь!
    от DJ_Kolbass в разделе Объявления
    Ответов: 5
    Последнее сообщение: 12.10.2006, 21:54

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru
Администрация сайта не выражает согласия
с высказыванием участников форума и не несет
ответственности за их содержание.

Копирование любого материала возможно только
при наличии ссылки на сайт.