Решение функциональных и вычислительных задач средствами пакета прикладных программ MathCAD2000 и электронных таблиц MS Excel

Автор работы: Пользователь скрыл имя, 26 Ноября 2012 в 19:38, курсовая работа

Краткое описание

Миллионы людей занимаются математическими расчетами, иногда в силу влечения к таинствам математики и ее внутренней красоте, а чаще в силу профессиональной или иной необходимости, не говоря уже об учебе. Ни одна серьезная разработка в любой отрасли науки и производства не обходится без трудоемких математических расчетов. Система Mathcad пользуется огромной популярностью во всем мире, позволяя готовить вполне профессиональные документы, имеющие вид статей и книг по математике.
Программа Microsoft Excel входит в офисный пакет Microsoft Office и предназначена для подготовки и обработки электронных таблиц под управлением операционной системой Windows. Microsoft Excel – это многофункциональный, мощный редактор электронных таблиц. Он представляет возможность производить различные расчеты, составлять списки, сметы и что немаловажно, строить наглядные графики и диаграммы.
Об этом и многом другом подробнее рассказано в разделах:
В части I представлены решения нелинейного уравнения, системы нелинейных уравнений, системы линейных алгебраических уравнений, задачи линейной оптимизации и дифференциального уравнения в MathCAD.
В части II представлено решение задачи линейной оптимизации и построение линии тренда в Excel.

Содержание

Введение 3
Часть I. Решение функциональных и вычислительных задач средствами пакета прикладных программ MathCAD2000 4
1. Решение нелинейных уравнений 6
Решение нелинейного уравнения графически с точностью до 0.001 6
1.2. Решения нелинейного уравнения с помощью Solve и Root 7
1.3. Анализ полученных результатов 8
Решение системы нелинейных уравнений 8
Решение СНУ графически с точностью до 0.001 8
Решение СНУ с помощью Given и Find или Given и Minerr 9
Анализ полученных результатов 10
Решение системы линейных алгебраических уравнений 10
3.1. Решение СЛАУ с помощью Given и Find 10
3.2. Решение СЛАУ с помощью функции lsolve 11
3.3. Решение СЛАУ с помощью обратной матрицы 12
3.4. Решение СЛАУ с помощью по формулам Краммера 13
3.5. Решение СЛАУ с помощью методом Гаусса 15
3.6. Анализ полученных результатов 16
4. Интерполирование. Аппроксимация 16
4.1. Решение с помощью линейной интерполяции 17
4.2. Решение с помощью параболического сплайна 18
4.3. Решение с помощью линейной аппроксимации 18
4.4. Решение с помощью метода наименьших квадратов 20
4.5. Решение с помощью полиноминальной регрессии 22
4.6. Графики таблично заданной функции в одних осях координат 24
4.7. Анализ полученных результатов 24
5. Дифференциальные уравнения 25
5.1. Решение дифференциального уравнения методом Рунге-Кутта 25
6. Линейное программирование 27
6.1. Решение задачи линейного программирования с помощью функции maximize или minimize. 27
Часть II. Решение функциональных и вычислительных задач средствами электронной таблицы MS Excel. 29
1. Линейное программирование 30
1.1. Решение задачи линейного программирования с «поиск решения» 30
1.2. Анализ полученных результатов 31
2. Трендовый анализ 31
2.1. Построение линии тренда 31
2.2. Поиск приближенного значения функции 33
2.3. Анализ полученных результатов 34
Заключение 35
Список литературы 36

Прикрепленные файлы: 1 файл

можно взять рамочки.doc

— 1.26 Мб (Скачать документ)

 

    

                                         рис. 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.

 

 

                                                      рис. 4.2

     

 

 

4.3. Решение с помощью  линейной аппроксимации

Найдем коэффициенты аппроксимирующего полинома с помощью  функций intercept и slope.

 

Функция intercept(vx, vy) – свободный член уравнения регрессии. Равен отрезку, отсекаемому линией регрессии на оси ординат, и определяется по формуле:

 

Функция slope(vx, vy) – коэффициент линейного уравнения регрессии. Определяет тангенс угла наклона линии регрессии к оси х, используя формулу:

 

 

Применим эти функции  для получения свободного члена  и коэффициента регрессии

 

Записываем аппроксимирующий полином и получаем приближенное значение функции в заданной точке.

         

Построим график аппроксимирующего  полинома и таблично заданной функции.

рис. 4.3

 

 

 

4.4. Решение с помощью  метода наименьших квадратов

 

Суть метода: сумма квадрата разности между аппроксимирующей функцией и  функцией заданной таблично должна быть минимальной.

Задаем степень аппроксимирующего  полинома.  

 

при m=2 

 

 

          

                               рис. 4.4

 

 

 

 

 

 

 

при m=3

                                                    рис. 4.5

 

 

 

 

 

 

 

 

 

 

4.5. Решение с помощью  полиноминальной регрессии

Задача регрессии заключается  в получении параметра приближённой функции таким, чтобы функция отличалась от таблично заданной функции с наименьшей среднеквадратичной погрешностью. 

 

при m=2

Функция regress(vx, vy, m) – вектор, требующий interp для нахождения полинома порядка m, наилучшим образом приближающего данные из vx и vy.

 

   

 

submatrix(A, ir, jr, ic, jc,) – субматрица, состоящая из элементов матрицы А, содержащихся в строках от ir по jr и столбцах с ic по jc.

 

 

                                       рис. 4.6

 

 

 

 

 

 

 

 

при m=3

       

 

 

                                 рис. 4.7

 

 

 

 

 

 

 

 

 

 

 

 

 

4.6. Графики таблично заданной функции в одних осях координат

 

Для сравнения всех функций и полученных вычислений построим общий график:

рис. 4.8

 

 

7. Анализ полученных  результатов

 

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

 

 

 

 

 

 

 

 

 

 Задание 5. Решение дифференциальных уравнений

1. Решить дифференциальное уравнение методом Рунге-Кутта.

 

                

При решении дифференциального  уравнения искомой величиной  является функция. Для обыкновенных дифференциальных уравнений неизвестная функция – функция одной переменной. Дифференциальные уравнения в частных производных – это дифференциальные уравнения, в которых неизвестной является функция двух или большего числа переменных. MathCAD имеет ряд встроенных функций, предназначенных для решения дифференциального уравнения. Каждая из этих функций предназначена для численного решения обыкновенного дифференциального уравнения. В результате решения получается матрица, содержащая значения функции, вычисленные на некотором множестве точек (на некоторой сетке значений). Для каждого алгоритма, который используется при решении дифференциальных уравнений, MathCAD имеет различные встроенные функции. При решении поставленной задачи будем использовать метод Рунге-Кутта, применяя функцию rkfixed(y, x1, x2, n, F)

 

Функция rkfixed(y, x1, x2, n, F) – выдает таблицу результатов решения системы обыкновенных дифференциальных уравнений методом Рунге-Кутта четвертого порядка с фиксированным шагом интегрирования. Эта функция имеет пять аргументов:

Информация о работе Решение функциональных и вычислительных задач средствами пакета прикладных программ MathCAD2000 и электронных таблиц MS Excel