Расчетно-пояснительная записка к курсовой работе по дисциплине «информатика» Тема: «Решение функциональных и вычислительных задач средствами пакета прикладных программ MathCAD2000 и электронных таблиц MS Excel» Выполнил студент группы 93-1 Содержание Введение 3 Часть I. Решение функциональных и вычислительных задач средствами пакета прикладных программ MathCAD1. Решение нелинейных уравнений 6 1.1.
Решение нелинейного уравнения графически с точностью до 2. Решения нелинейного уравнения с помощью Solve и Root 3. Анализ полученных результатов 2. Решение системы нелинейных уравнений 1. Решение СНУ графически с точностью до 2. Решение СНУ с помощью Given и Find или Given и Minerr 9 2.3.
Анализ полученных результатов 3. Решение системы линейных алгебраических уравнений 1. Решение СЛАУ с помощью Given и Find 2. Решение СЛАУ с помощью функции lsolve 3. Решение СЛАУ с помощью обратной матрицы 4. Решение СЛАУ с помощью по формулам Краммера 5. Решение СЛАУ с помощью методом Гаусса 6. Анализ полученных результатов 16 4.
Интерполирование. Аппроксимация 1. Решение с помощью линейной интерполяции 2. Решение с помощью параболического сплайна 3. Решение с помощью линейной аппроксимации 4. Решение с помощью метода наименьших квадратов 5. Решение с помощью полиноминальной регрессии 6. Графики таблично заданной функции в одних осях координат 24 4.7.
Анализ полученных результатов 5. Дифференциальные уравнения 1. Решение дифференциального уравнения методом Рунге-Кутта 6. Линейное программирование 1. Решение задачи линейного программирования с помощью функции maximize или minimize. 27 Часть II. Решение функциональных и вычислительных задач средствами электронной таблицы MS Excel. 1. Линейное программирование 1. Решение задачи линейного программирования с «поиск решения» 2. Анализ полученных результатов 2. Трендовый анализ 1. Построение линии тренда 2. Поиск приближенного значения функции 3. Анализ полученных результатов 34 Заключение 35 Список литературы 36 Введение Миллионы людей занимаются математическими расчетами, иногда в силу влечения к таинствам математики и ее внутренней красоте, а чаще в силу профессиональной или иной
необходимости, не говоря уже об учебе. Ни одна серьезная разработка в любой отрасли науки и производства не обходится без трудоемких математических расчетов. Система Mathcad пользуется огромной популярностью во всем мире, позволяя готовить вполне профессиональные документы, имеющие вид статей и книг по математике. Программа Microsoft Excel входит в офисный пакет Microsoft
Office и предназначена для подготовки и обработки электронных таблиц под управлением операционной системой Windows. Microsoft Excel – это многофункциональный, мощный редактор электронных таблиц. Он представляет возможность производить различные расчеты, составлять списки, сметы и что немаловажно, строить наглядные графики и диаграммы. Об этом и многом другом подробнее рассказано в разделах: В части I представлены решения нелинейного уравнения, системы нелинейных уравнений, системы линейных
алгебраических уравнений, задачи линейной оптимизации и дифференциального уравнения в MathCAD. В части II представлено решение задачи линейной оптимизации и построение линии тренда в Excel. Часть I. Решение функциональных и вычислительных задач средствами пакета прикладных программ MathCAD2000 MathCAD – это мощная и в то же время простая универсальная среда для решения задач в различных отраслях науки и техники, финансов и экономики, физики и астрономии, строительства и архитектуры, математики и статистики, организации производства и управления… Она располагает широким набором инструментальных, информационных и графических средств. Сегодня MathCAD – одна из самых популярных математических систем. Она пользуется большим спросом у студентов, инженеров, экономистов, менеджеров, научных работников и всех тех, чья деятельность связана с количественными методами расчета.
В настоящее время разработано и функционирует множество различных математических систем: Maple, Mathlab, Mathematica, Reduce, Derive, Theorist, Macsyma и др. Каждая из них имеет свои преимущества и недостатки, а также свои области применения. В чем же отличие системы MathCAD от аналогичных? Во-первых, в математических системах Reduce, Macsyma, Derive, Maple, Mathematica, Theorist в основном используются целочисленное представление
и символьная обработка данных, а в Matlab преимущественно ориентированна на работу с массивами. MathCAD же изначально создавалась для численного решения математических задач (1988 г.), и только в 1994 г. в нее были добавлены инструменты символьной математики из системы Maple, что постепенно превратило MathCAD в универсальную систему. Во-вторых, запись задач в MathCAD наиболее приближена к записи их без использования компьютера, что
существенно упрощает применение системы. В-третьих, система MathCAD более доступна для массового пользователя: она в несколько раз дешевле своих аналогов (речь идет о лицензионных продуктах). В-четвертых, система MathCAD – это, скорее, универсальная, чем специализированная математическая система. Так, для решения сложных задач в аналитическом виде лучше применять
Maple, а для решения сложных задач линейной алгебры – Matlab и т.д. В-пятых, MathCAD имеет встроенную систему автоматического пересчета и контроля единиц измерений в процессе вычислений. Допустим, мы определяем расстояние от одного объекта до другого как сумму отдельных расстояний с использованием различных единиц измерения (мили, футы, ярды, сантиметры). Система MathCAD автоматически произведет перерасчет всех расстояний и выдаст результат с заренее установленной единицей измерения. В-шестых, MathCAD имеет достаточно мощную, но простую систему наглядного представления результатов расчета в виде различного рода графиков. В-седьмых, MathCAD может взаимодействовать с другими приложениями. Например, данные программ Excel или Matlab могут непосредственно включаться в вычислительный поток системы MathCAD: здесь допускается управлять чертежами, выполненными в
AutoCAD, использовать Visual Basic и OLE Automation для создания коммерческих приложений и многое другое. С помощью MathCAD 2000 Professional можно вводить исходные данные (как в обычном текстовом редакторе), традиционно описывать решение задачи и получать результаты вычислений в аналитическом и численном виде с возможностью использования средств графического представления результатов. Запись математических выражений производится с применением общепринятых знаков (квадратный корень,
знак деления в виде горизонтальной черты, знаки интеграла, дифференциала, сумму и т.д.). В MathCAD 2000 Pro встроены хорошо организованные текстовый, формульный и графический редакторы. Они оснащены удобным пользовательским интерфейсом и разнообразными математическими возможностями. В последних версиях MathCAD допускается импортировать любые графические изображения (от простых графиков функций до специализированных чертежей системы AutoCAD) и использовать средства анимации, звуковые и
стереофонические эффекты. Программа MathCAD 2000 Professional оснащена приложениями SmartSketch, Axum LE, Autodesk’s Volo View, MathCAD add-in for Excel. SmartSketch позволяет аннотировать рабочие документы с рисунками, диаграммами, изображениями. Данное приложение обеспечивает параметрическое управление, как рисунками, так и вычислениями. Axum LE дает более полный контроль над двумерными графиками. Autodesk’s Volo View обеспечивает просмотр изображений AutoCAD в MathCAD. C помощью MathCAD add-in for Excel можно работать в Excel. Задание 1. Решение нелинейных уравнений 1. Решить нелинейное уравнение графически с точностью до 0.001 2. Решить нелинейное уравнение с помощью solve и root. Решение: Записываем данную функцию в рабочем окне документа 1.1.
Решение нелинейного уравнения графически с точностью до 0.001 Для построения декартова графика нужно: • Установить визир в пустом месте рабочего листа; • Щелкнуть по пункту Вставить главного меню, по пункту График падающего меню или нажатием комбинации клавиш Shift+2. Появится шаблон декартова графика. Ввести в средней метке под осью
X независимую переменную. • Ввести в средней метке слева от вертикальной оси Y зависимую переменную. Каждой независимой переменной должна соответствовать своя зависимая переменная – свое выражение. Если эти зависимости определены до построения графика, то они будут изображены на нем. Ниже, на рис. 1.1, изображен график функции рис. 1.1 График функции При графическом решении корнями уравнения будут являться точки пересечения графика
функции с осью ОХ. Для определения координат точек пересечения графика с осью воспользуемся трассировкой. Для этого нужно: • Щелкнуть по графику правой клавишей мыши; • Во всплывающем меню выбрать Трассировка…. Появится окно X-Y Trace (Трассировка декартова графика), отображенное на рис. 1.3; • Расположить указатель мыши на кривой. Нажать левую кнопку и, не отпуская ее, перемещать указатель
вдоль кривой. В диалоговом окне X-Y Trace будут определяться координаты положения указателя на кривой (см. рис. 1.2). • Найдя значение по оси х при котором значение по оси у удовлетворяет заданной точности, скопировать в буфер обмена данных, щелкнув по соответствующим кнопкам. рис. 1.2 рис. 1.3 Окно X-Y Trace Аналогично поступим со второй точкой пересечения графика функции с осью ОХ, как показано на рис. 1.4 и рис. 1.5. рис. 1.4 рис. 1.5 Корни найдены с заданной точностью. 1.2. Решения нелинейного уравнения с помощью Solve и Root С помощью оператора solve система находит только один корень уравнения: Для нахождения остальных корней уравнения решим его с помощью функции root(f(x), x). Функция root(f(x), x) – находит корень уравнения с одним неизвестным. Возвращает значение x, при котором функция f(x) равна нулю.
Использование функции root требует предварительного задания начального значения. Если исследуемая функция имеет много корней, то найденный корень будет зависеть от начального приближения. Если оно расположено близко к локальному экстремуму функции f(x), функция root может не найти корня, либо найденный корень будет далеко от начального приближения. Зададим приближенное значение независимой переменной и воспользуемся функцией root(f(x), x):
1.3. Анализ полученных результатов Произведем проверку значений, полученных графическим методом, и сравним их с результатами вычисления функции root(f(x), x) Проверка показала, что решения найденные всеми методами совпадают. Это говорит о том, что решения найдены верно. Задание 2. Решение системы нелинейных уравнений 1. Решить систему нелинейных уравнений графически с точностью до 0.001. 2.
Решить систему нелинейных уравнений с помощью Given и find() или Given и minerr(). Решение: 2.1 Решение СНУ графически с точностью до 0.001 Чтобы решить систему уравнений графически, записываем зависимость одной переменной от другой в каждом из уравнений в системе: Строим графики функций, пользуясь правилами построения графиков описанными в задании 1: рис. 2.1 Графики функций f(y) и F(y) в одних координатных осях
Корнями системы уравнений будут являться координаты точки пересечения двух графиков. Найдем эту точку с помощью трассировки, пользуясь правилами трассировки, описанными в задании 1: рис. 2.2 рис. 2.3 2.2. Решение СНУ с помощью Given и Find или Given и Minerr Функция minerr(x, y, …) – возвращает значения x, y, … решения уравнений, наиболее близкие к решению системы уравнений. x, y, … – скалярные переменные, значение которых ищутся в системе уравнений. Если определяется одна неизвестная то функция minerr(x, y, …) возвращает скаляр. В ином случае она возвращает вектор, первым элементом которого является искомое значение неизвестной x, вторым – y и т.д. Перед использованием этой функции необходимо задать начальное приближение для каждой неизвестной и ключевое слово Given. Если система имеет несколько решений, то нужное определяется заданным начальным приближением. Для этого зададим начальные приближённые значения переменных, данных в уравнениях:
Произведём проверку графического решения: 2.3. Анализ полученных результатов Решая систему нелинейных уравнений графически и символьно, получили одинаковый корень. Проверка показала, что решение найдено верно. Задание 3. Решение системы линейных алгебраических уравнений Решить СЛАУ следующими способами: 1. С помощью given и find.
2. С помощью функции lsolve. 3. С помощью обратной матрицы. 4. По формулам Крамера. 5. Методом Гаусса. Решение: 3.1. Решение СЛАУ с помощью Given и Find Функция find(x, y, …) – возвращает значения x, y, …, удовлетворяющие ограничениям: равенствам и неравенствам, заданным в блоке решения уравнений Given. Число уравнений должно равняться количеству неизвестных x, y, …
Когда блок решения уравнений ищет одну неизвестную, функция find возвращает скаляр. В ином случае она возвращает вектор, первым элементом которого является искомое значение неизвестной x, вторым – y и т.д. Перед использованием этой функции необходимо задать начальное приближение для каждой неизвестной. Если система имеет несколько решений, то нужное определяется заданным начальным приближением. Запишем в рабочей области программы систему уравнений (ограничения) и, воспользовавшись функцией find(x, y, …) найдем корни этой системы. Так как система имеет более одной неизвестной ответ получим виде вектора, элементы которого есть искомые значения х1, х2, х3, х4 соответственно. 3.2. Решение СЛАУ с помощью функции lsolve(M, v) lsolve(M, v) – возвращает вектор х решения линейной системы уравнений . Вектор v – это вектор правых частей линейной системы уравнений. Записываем матрицу А, которая будет состоять из коэффициентов стоящих перед неизвестными х1, х2, х3,
x4: Аналогично записываем матрицу В, которая будет состоять из столбца свободных членов: Решаем систему с помощью lsolve(M, v): Проверка: Подсчитывая выражение , получаем нулевую матрицу, значит x найден верно. 3.3. Решение СЛАУ с помощью обратной матрицы Записываем матрицы А и В: Решаем систему с помощью обратной матрицы: Производим проверку по формуле : В результате проверки находим, что результат вычисления выражения
равен столбцу из свободных членов, следовательно, решение найдено верно 3.4. Решение СЛАУ с помощью по формулам Краммера Задаём матрицы А и В: Решаем определитель, составленный из элементов матрицы A: так как определитель матрицы A не равен нулю, то существует единственное решение. Находим : Заменяем элементы первого столбца матрицы
A на элементы матрицы B и решаем полученный определитель: Находим : Заменяем элементы второго столбца матрицы A на элементы матрицы B и решаем полученный определитель: Находим : Заменяем элементы третьего столбца матрицы A на элементы матрицы B и решаем полученный определитель:
Находим : Заменяем элементы четвертого столбца матрицы A на элементы матрицы B и решаем полученный определитель: Находим x1, x2, x3, x4 по формуле 3.5. Решение СЛАУ с помощью методом Гаусса Задаём матрицы А и В: Сформируем расширенную матрицу: Обращаемся к методу Гаусса, сформировав единичную матрицу из расширенной: С помощью функции submatrix выделяем блок из матрицы D: Где D – название матрицы, из которой находится выделяемый блок, 0 – начальный номер строки, выделяемого блока, 3 – конечный номер строки, выделяемого блока, 4 – начальный номер столбца выделяемого блока, 4 – конечный номер столбца, выделяемого блока. 3.6. Анализ полученных результатов Решая систему линейных алгебраических уравнений пятью способами,
получили один и тот же ответ, что говорит о правильности полученного результата. Проверкой это подтвердили. Задание 4. Интерполирование. Аппроксимация Найти приближенное значение функции при заданном значении аргумента 1. с помощью линейной интерполяции 2. с помощью кубического сплайна 3. с помощью линейной аппроксимации 4. методом наименьших квадратов при m=2 и при m=3, где m- порядок полинома.
Вычислить среднеквадратичное отклонение 5. с помощью полиномиальной регрессии 6. построить графики таблично заданной функции, интерполяционного полинома и аппроксимирующей функции в одних осях координат. 0.150 6.616 0.162 0.155 7.399 0.160 6.196 0.165 6.005 0.170 7.825 0.175 5.655 Решение: В MathCAD есть несколько способов интерполяции и предсказывания: • линейная интерполяция – соединение точек прямой линией; • кубическая сплайновая интерполяция – соединение точек с использованием
кубических линий; • интерполяция В-сплайн – соединение точек с использованием многочленов определенной степени в данных узлах; • многомерная кубическая сплайновая интерполяция – создание поверхности, проходящей через сетку точек; • линейное предсказание (экстраполяция) – определение значений вне набора данных. Далее будут приведены примеры интерполирования функции с использованием лишь некоторых способов интерполирования. 4.1. Решение с помощью линейной интерполяции Для решения с помощью линейной интерполяции используется функция линейного интерполирования linterp(x, y, xd) Функция linterp(vx, vy, xd) – возвращает оценку значения в точке x, вычисленную методом линейной интерполяции на основе значений из векторов x и y; • vx – вещественный вектор, элементы которого должны идти в порядке возрастания и соответствовать значениям х; • vy – вещественный вектор одного размера с vх. Его элементы соответствуют значениям y; • xd – значение переменной x, в которой нужно проинтерполировать
величину y. Предполагается, что х лежит в интервале изменения элементов vx. Задаем значения х и у в виде матриц: Находим функцию f(x): Строим график функции: рис. 4.1 График проходит через узлы интерполяции, значит функция задана верно. 4.2. Решение с помощью параболического сплайна Сплайн – это математическая модель гибкого, тонкого стержня из упругого материала. Стержень закрепляется в двух соседних узлах с заданными углами наклона.
Стержень длиннее, чем расстояние между двумя точками. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закреплённую в узловых точках (откуда и название: spline – гибкая линейка). Функция cspline(vx, vy) – возвращает вектор коэффициентов кубического сплайна vs, который используется функцией interp для построения кубического сплайна, интерполирующего данные, представленные в векторах
vx и vy. На поведение сплайна на концах условий не налагается. Вектор vs становится первым параметром функции interp. Функция interp(vs, vx, vy, x) – возвращает интерполированное значение в точке х, полученное с помощью кубических сплайнов на основе данных, представленных в векторах vx и vy.