Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Предмет статистики как отрасли изучаемого знания




20 0,14786346 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000

19 -0,63131055 0,77917401 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000

18 -1,02117178 0,38986123 0,38931278 0,00000000 0,00000000 0,00000000 0,00000000

17 -0,92730383 -0,09386795 0,48372918 -0,09441639 0,00000000 0,00000000 0,00000000

16 -0,37382740 -0,55347643 0,45960848 0,02412070 -0,11853709 0,00000000 0,00000000

15 0,50249561 -0,87632302 0,32284659 0,13676189 -0,11264119 -0,00589590 0,00000000

14 1,48573575 -0,98324013 0,10691712 0,21592947 -0,07916758 -0,03347361 0,02757772

13 2,33365174 -0,84791599 -0,13532414 0,24224126 -0,02631179 -0,05285579 0,01938217

12 2,83698752 -0,50333578 -0,34458021 0,20925607 0,03298520 -0,05929699 0,00644120

11 2,87069242 -0,03370490 -0,46963088 0,12505067 0,08420540 -0,05122020 -0,00807679

10 2,42452408 0,44616834 -0,47987324 0,01024236 0,11480831 -0,03060291 -0,02061729

9 1,60554141 0,81898267 -0,37281434 -0,10705890 0,11730126 -0,00249295 -0,02810995

8 0,61187721 0,99366420 -0,17468152 -0,19813281 0,09107391 0,02622735 -0,02872030

7 -0,31578804 0,92766525 0,06599895 -0,24068047 0,04254766 0,04852625 -0,02229890

6 -0,95317040 0,63738236 0,29028289 -0,22428394 -0,01639653 0,05894419 -0,01041793

5 -1,14731292 0,19414251 0,44323985 -0,15295696 -0,07132698 0,05493045 0,00401374

4 -0,85405331 -0,29325961 0,48740212 -0,04416227 -0,10879469 0,03746772 0,01746273

3 -0,14885544 -0,70519787 0,41193826 0,07546386 -0,11962613 0,01083144 0,02663627

2 0,79164763 -0,94050307 0,23530519 0,17663307 -0,10116921 -0,01845692 0,02928836

1 1,73288021 -0,94123259 0,00072952 0,23457567 -0,05794260 -0,04322661 0,02476968

0 2,43973721 -0,70685700 -0,23437559 0,23510511 -0,00052944 -0,05741317 0,01418656

20 0.14786346 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000

19 -0.63131055 0.77917401 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000

18 -1.02117178 0.38986123 0.38931278 0.00000000 0.00000000 0.00000000 0.00000000

17 -0.92730383 -0.09386795 0.48372918 -0.09441639 0.00000000 0.00000000 0.00000000

16 -0.37382740 -0.55347643 0.45960848 0.02412070 -0.11853709 0.00000000 0.00000000

15 0.50249561 -0.87632302 0.32284659 0.13676189 -0.11264119 -0.00589590 0.00000000

14 1.48573575 -0.98324013 0.10691712 0.21592947 -0.07916758 -0.03347361 0.02757772

13 2.33365174 -0.84791599 -0.13532414 0.24224126 -0.02631179 -0.05285579 0.01938217

12 2.83698752 -0.50333578 -0.34458021 0.20925607 0.03298520 -0.05929699 0.00644120

11 2.87069242 -0.03370490 -0.46963088 0.12505067 0.08420540 -0.05122020 -0.00807679

10 2.42452408 0.44616834 -0.47987324 0.01024236 0.11480831 -0.03060291 -0.02061729

9 1.60554141 0.81898267 -0.37281434 -0.10705890 0.11730126 -0.00249295 -0.02810995

8 0.61187721 0.99366420 -0.17468152 -0.19813281 0.09107391 0.02622735 -0.02872030

7 -0.31578804 0.92766525 0.06599895 -0.24068047 0.04254766 0.04852625 -0.02229890

6 -0.95317040 0.63738236 0.29028289 -0.22428394 -0.01639653 0.05894419 -0.01041793

5 -1.14731292 0.19414251 0.44323985 -0.15295696 -0.07132698 0.05493045 0.00401374

4 -0.85405331 -0.29325961 0.48740212 -0.04416227 -0.10879469 0.03746772 0.01746273

3 -0.14885544 -0.70519787 0.41193826 0.07546386 -0.11962613 0.01083144 0.02663627

2 0.79164763 -0.94050307 0.23530519 0.17663307 -0.10116921 -0.01845692 0.02928836

1 1.73288021 -0.94123259 0.00072952 0.23457567 -0.05794260 -0.04322661 0.02476968

0 2.43973721 -0.70685700 -0.23437559 0.23510511 -0.00052944 -0.05741317 0.01418656

Код, обеспечивающий расчет таблицы конечных разностей и вывод ее в файл table.txt:

Теперь приступим к реализации ввода пользователем значения аргумента, для которого необходимо вычислить значение интерполяционного многочлена (предполагается, что пользователь корректно вводит числовые данные с учетом границ интерполирования).

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

Заключительный этап ввода данных и выполнения соответствующих вычислений может быть реализован в следующем виде:

Строки кода 55-58 предназначены для определения индекса m подинтервала, в который «попало» заданное пользователем значение аргумента rx. Если этот подинтервал принадлежит верхней части таблицы данных – то будем применять первую интерполяционную формулу Ньютона (62–66), в противном случае – вторую интерполяционную формулу (68-72).

Вам необходимо самостоятельно изучить программную реализацию вычислений, выполняемых в соответствии с формулами интерполирования (9.1) и (9.2).

Вывод результатов будем производить как на монитор компьютера (74), так и в тестовый файл RezTask_09_00.txt, см. строки кода (66, 72).

Запустим программу на выполнение и осуществим вычисления для некоторого количества входных данных, например:

Завершение работы программы выполним нажатием сочетания клавиш Ctrl+C.

Файл результатов работы, также включенный нами в проект, будет иметь вид:

Для того чтобы убедиться в правильности полученных Вами результатов, выполните вычисления по Вашему варианту при помощи программы NMM_Labs.

Очевидно, что произвести сравнительный анализ значений функции, полученных путем интерполирования, с точными значениями функции не представляется возможным, поскольку исходные данные были заданы не функционально, а в виде таблицы дискретных значений.

Пример выполнения лабораторного задания на языке C#

В имеющемся рабочем пространстве NMM_PetrovIS сгенерируем (добавим) новый проект LabTask_09с консольного приложения на языке программирования C#, которому зададим тип конфигурации – Release, и который сделаем стартовым проектом.

После инициализации проекта LabTask_09с зададим новое имя файлу ProgramProgram_09.

Скопируем файл данных LabTask_09_00.txt в директорию проекта LabTask_09с.

Включим файл в LabTask_09_00.txt проект LabTask_09с и зададим значение «Copy always» для свойства «Copy to Output Directory» этого файла:

Это действие позволит среде разработки автоматически учитывать изменения, производимые пользователем с файлом LabTask_09_00.txt, при загрузке данной программы на выполнение.

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

Напомним, что для работы с файлами потокового ввода-вывода необходимо подключить к проекту пространство имен System.IO.

Никаких принципиально новых элементов программирования на C# мы здесь не применяем, поэтому код программы приводится без комментариев. Вам следует самостоятельно разобраться в функциональном предназначении блоков программы.

Для достижения большего эффекта с точки зрения обучения Вам следует поэтапно разрабатывать данную программу и тестировать каждый из таких этапов.

Например, в качестве первого этапа можно принять этап, завершающийся формированием файла sort.txt. Если выполнение программы завершается успешно – файл sort.txt создается и его содержимое эквивалентно данным из аналогичного файла sort.txt предыдущего проекта, то можно переходить к программированию следующего этапа и т.д.

Следите за соблюдением форматов ввода–вывода. Чтение первичных данных из файла LabTask_09_00.txt, выполняемое в строках 50–51, производится с учетом того, что общее количество символов (включая пробелы), отведенное на каждое из чисел в строке, равно 20.

Поскольку нумерация символов в строке начинается от 0, то первое число, т.е. – размещено в символах от 0 -го до 19 -го, а второе число, т.е. – от 20 -го до 39 -го.

Внимательно изучите форматы данных в вашем варианте файла LabTask_09_№№.txt.

Особое внимание следует уделить синтаксису циклов с отрицательным шагом переменной цикла. Сравните, например, строку 56 данного кода и строку 23 программы на Fortran.

Рассчитанная таблица разностей оказывается идентичной таковой из предыдущего проекта:

Отличие заключается лишь в том, что в текстовых файлах разделителем целой и дробной частей десятичного числа в Fortran всегда является точка, а в C# – это символ, принятый ОС для данного компьютера (в данном случае это оказалась запятая).

Для корректного завершения данного консольного приложения реализован выход «по условию», см. строку 116. В том случае, если пользователь введет в качестве аргумента значение, выходящее за пределы интервала интерполирования, переменная flag получит значение false и программа «выйдет» из цикла while(flag) {…}.

В этом случае файл RezTask_09_00.txt результатов будет сохранен в директории данного проекта. В противном случае – когда завершение программы будет принудительным, например, через Ctrl+C, данные для файла RezTask_09_00.txt будут утеряны.

 

После компиляции проекта выполним ввод данных, идентично тому, как это делалось в предыдущем проекте:

Сопоставим файлы результатов двух проектов и убедимся в их идентичности.

Последнее свидетельствует в пользу того, что цель данной лабораторной работы достигнута.

Разработанное консольное приложение можно квалифицировать как «Калькулятор неизвестной функции», поскольку нам неизвестен функциональный вид той зависимости, по таблице которой мы программным путем строили интерполяционный многочлен, а затем использовали этот полином для вычислений.

Контроль выполнения варианта лабораторного задания № 9

Для контроля правильности Вашего выполнения лабораторной работы № 9 воспользуйтесь приложением NMM_Labs.

После нажатия на кнопку «Выполнить» перед Вами появляется следующая форма:

Работа данной формы начинается после нажатия на кнопку «Генерировать файл данных».

В результате в директории, из которой была отправлена на выполнение программа NMM_Labs.ехе, появится (или обновится) текстовый файл данных LabTask_09_№№.txt. Этот файл Вам необходимо будет также скопировать в рабочие директории проектов Вашей лабораторной работы на Fortran и C# (при условии совпадения номеров вариантов).

Имя указанного файла появится на форме, а сами данные будут выведены на форму в соответствующей таблице – «Таблице исходных данных».

Следующее действие – упорядочивание данных и вычисление таблицы конечных разностей можно выполнить либо нажав одноименную кнопку, либо выбрав новое значение для элемента «Старший порядок конечных разностей».

Для старшего порядка конечных разностей установлен диапазон от 2 до 6.

Изменяя значение этого параметра, Вы можете проследить за соответствующими изменениями в структуре «Таблицы конечных разностей». Помимо этого, Вы можете исследовать влияние порядка конечных разностей на точность интерполирования.

Напоминаем, что в Вашей лабораторной работе предусмотрен старший порядок конечных разностей, равный 6.

Последним действием, доступным для Вас в рамках программы NMМ_Labs, является ввод значения аргумента, для которого требуется вычислить значение интерполяционного многочлена Ньютона для данного старшего порядка конечных разностей. При этом информация о выборе интерполяционной формулы и данные, участвующие в вычислениях, будут выводиться на форму.

Поскольку данная программа написана в демонстрационных целях и ее разработчикам известны аналитические представления функций, по которым генерировались файлы исходных данных, дополнительно производится сравнение «точных» и «интерполированных» значений функции.

Вам также предоставляется возможность исследовать погрешность интерполяции в зависимости от степени интерполяционного многочлена (старший порядок конечных разностей).

 

В случае совпадения результатов, получаемых для различных значений аргумента при помощи Ваших программ (на Fortran и C#) и программы NMМ_Labs, считается, что лабораторная работа № 9 Вами выполнена успешно.

Предметом статистики является изучение размеров, количественных соотношений, массовых общественных явлений в конкретных условиях места и времени, а так же числовое выражение, проявляющихся в них закономерностей.

 




Поделиться с друзьями:


Дата добавления: 2014-12-24; Просмотров: 391; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.039 сек.