MathCAD, Microsoft Excel, Pascal в инженерно-экономических расчетах

Работа с матрицами и векторами в программе MathCAD, Pascal, Excel. Поиск экстремума целевой функции двух переменных. Дифференциальное уравнения первого порядка с начальными условиями. Определение оптимального плана перевозок. Функция одной переменной.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 11.02.2013
Размер файла 21,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Оглавление

  • Введение
  • 1. Работа с матрицами и векторами
    • 1.1 Задача 1
      • 1.1.1 Pascal (задача 1)
      • 1.1.2 MathCAD (задача 1)
    • 1.2 Задача 2
      • 1.2.1 Pascal (задача 2)
      • 1.2.2 MathCAD (задача 2)
      • 1.2.3 Excel (задача 2)
  • 2. Поиск экстремума функции двух переменных
    • 2.1 MathCAD (задача 3)
    • 2.2 Excel (задача 3)
  • 3. Решение уравнения
    • 3.1 Pascal (задача 4)
    • 3.2 MathCAD (задача 4)
    • 3.3 Excel (задача 4)
  • 4. Дифференциальные уравнения
    • 4.1 Pascal (задача 5)
    • 4.2 MathCAD (задача 5)
    • 4.3 Excel (задача 5)
  • 5. Транспортная задача
    • 5.1 MathCAD (задача 6)
    • 5.2 Excel (задача 6)
  • 6. Задача о назначениях
    • 6.1 MathCAD (задача 7)
    • 6.2 Excel (задача 7)
  • 7. Функция одной переменной
    • 7.1 Pascal (задача 8)
    • 7.2 MathCAD (задача 8)
    • 7.3 Excel (задача 8)
  • Заключение
  • Библиографический список

Введение

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

Выполняя данную работу, я обобщил и сформировал полученные знания и умения обращения с программами Excel, Pascal, Word, MathCAD в единую систематизированную структуру знаний.

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

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

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

1. Работа с матрицами и векторами

1.1 Задача 1

Вычислить значения матрицы N и вывести ее на экран в табличном и матричном виде, если известна формула определения ее элементов:

,

где

а=(4, -1, 0, 2, 5); b=(2, 3, 6, 8)

1.1.1 Pascal (задача 1)

Для решения задачи необходимо в разделе const ввести количество строк m, количество столбцов n. Для хранения массива мы создаем два одномерных массива и один двумерный массив. Опишем его в разделе переменных var, с помощью зарезервированного слова array, при этом укажем общее число входящих в массив элементов и тип этих элементов.

Теперь после зарезервированного слова begin каждому элементу массива i и j присваиваем соответствующий ему элемент константы.

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

Выведем на экран элементы массива в матричной форме. Будем использовать вложенные циклы. Первый цикл будет менять значения строк, а второй заключенный в операторные скобки перебирает номера столбцов, в это время оператор writeln(H[i,j]:6:3) выводит на экран текущее значение массива H, отображая три цифры после запятой. Для вывода в табличной форме меняем циклы местами. Текст программы и результат приведены ниже (рис.1).

Рис. 1. Код программы

Проверяем правильность программного кода - F9, если все правильно, то запускаем программу на выполнение Ctrl+F9. После чего просматриваем результат Alt+F5 (рис. 2).

Рис. 2. Результат работы программы

1.1.2 MathCAD (задача 1)

Для традиционной нумерации присвоим оператору ORIGIN значение 1.

Задаем количество строк матрицы N, равное количеству элементов последовательности b и количество столбцов матрицы, равное количеству элементов последовательности a. Далее вводим последовательности b и a как вектора с помощью перечисления из значений через запятую.

Вводим формулу для вычисления каждого элемента массива N. Ввод формулы осуществляем с помощью элементов на панели «Математика».

Далее выводим массив N в матричном и табличном виде (рис. 3).

Рис. 3. Выполнение задания в программе MathCAD

1.2 Задача 2

Выводим массив N в матричном виде

Сформируйте матрицу-столбец и матрицу строку, соответственно равные j-му столбцу и i-й строке матрицы А. Вычислите суммы элементов j-го столбца и i-строки матрицы А. Переставьте 1-ю и 3-ю строки и 1-й и 3-й столбцы.

i=1 j=4

1.2.1 Pascal (задача 2)

Выведем на экран элементы массива. Будем использовать вложенные циклы. Первый цикл будет менять значения строк, а второй заключенный в операторные скобки перебирает номера столбцов, в это время оператор write(Z[i,j]:7:3); выводит на экран значение массива Z. Ниже приведен текст программы.

program Zad2;

const

m=4;

n=4;

var Z,A:array[1..m,1..n] of real;

d,t:array[1..m] of real;

i,j,k:integer;

s:real;

begin

writeln('vvedite matricu');

for i:=1 to m do

for j:=1 to n do

read(Z[i,j]);

writeln('matricu');

writeln;

for i:=1 to m do

begin

for j:=1 to n do

write(Z[i,j]:7:3);

writeln;

end;

write;

writeln('1-aja stroka');

i:=1;

for j:=1 to n do

write(Z[i,j]:7:3);

writeln;

writeln;

writeln('4-i stolbec');

j:=4;

for i:=1 to m do

writeln(Z[i,j]:7:3);

writeln;

s:=0;

for j:=1 to n do

s:=s+Z[1,j];

writeln('summa 1-oi stroki',s:7:3);

writeln;

s:=0;

for i:=1 to m do

s:=s+Z[i,4];

writeln('summa 4-go stolbca',s:7:3);

writeln;

writeln('pomenaem 1-i i 3-ii stolbci');

for i:=1 to m do

for j:=1 to n do

A[i,j]:=Z[i,j];

for i:=1 to m do

begin

d[i]:=A[i,1];A[i,1]:=A[i,3];A[i,3]:=d[i];

end;

for i:=1 to m do

begin

for j:=1 to n do

write(A[i,j]:7:3);

writeln;

end;

writeln;

writeln('pomenjaem 1 i 3 stroki');

for j:=1 to n do

begin t[j]:=Z[1,j];Z[1,j]:=Z[3,j];Z[3,j]:=t[j];

end;

for i:=1 to m do

begin

for j:=1 to n do

write(Z[i,j]:7:3);

writeln;

end;

readln;

end.

Рис. 4. Результат работы программы

1.2.2 MathCAD (задача 2)

Для традиционной нумерации присвоим оператору ORIGIN значение 1.

Введем матрицу A. На панели «Математика» выбираем инструмент «Матрицы» и «Создать матрицу или вектор» (или сочетание клавиш Ctrl+M). Задаем количество строк и столбцов, вводим элементы матрицы.

Для получения столбца матрицы используем «Столбец матрицы» (или сочетание клавиш Ctrl+6), и указываем его номер. Для получения суммы столбца используем «Матанализ» и инструмент «Суммирование». Для выделения строки, используем универсальную функцию submatrix. Submatrix(A,ir,jr,ic,jc) - субматрица, состоящая из элементов матрицы A, содержащихся в строках от ir по jr и столбцах с ic по jc. Для подсчета суммы элементов применим «Суммирование элементов вектора» на панели «Математика-Матрицы».

Для перестановки строк и столбцов пока матрица A имеет начальные значения, создадим несколько её копий (оператором присвоения), которые используем в дальнейшем, для переприсваивания нужных элементов строк и столбцов (рис.5).

Рис. 5.

1.2.3 Excel (задача 2)

Для заполнения матрицы A вписываем в свободную ячейку значения элементов матрицы, таким образом, получаем таблицу значений.

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

Для нахождения суммы строки в свободную ячейку вписываю функцию суммы =СУММ(C2:F2). Для нахождения суммы столбца в свободную ячейку вписываю функцию суммы =СУММ(C2:C5).

Для того чтобы поменять местами строки и столбцы, также указываем адрес нужной ячейки и маркером заполнения копируем адрес во всю строку или столбец (рис.6).

Рис. 6.

2. Поиск экстремума функции двух переменных

Найдите минимум целевой функции f(x)=ax + by при заданных ограничениях.

Функция: f = 2x+5y

Ограничения: x + y 6

x + 2y 11

2x +y 8

x 0, y 0

2.1 MathCAD (задача 3)

Для традиционной нумерации присвоим оператору ORIGIN значение 1, и начальные значения переменным x и y.

Далее задаем функцию от x и y.

Воспользуемся функцией Minimize, которая находит минимальное значение функции по заданным параметрам. Сначала, после Given задаются параметры, затем Minimize(f,x,y) (рис.7).

Рис. 7.

2.2 Excel (задача 3)

В D8:D10 вводим правые части неравенств из условия задачи, причем за х и у берем начальные значения ячеек A5 и B5 соответственно. В объединение ячеек D1 и D2 вводим целевую функцию из условия, также за х и у берем начальные значения ячеек С4 и С5 (рис. 8).

Рис. 8. Начальные данные и заполнение окна «Поиск решения»

Рис. 9. Результат

Решение уравнения

Определить решения уравнения f(x)=0 точностью =10-4, 3х-4lnx-5 = 0 x[2,4].

3.1 Pascal (задача 4)

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

Если точное значение неизвестно, допустимо оценивать разность между соседними итерациями.

Для решения задачи используем три раздела - uses для объявления модулей, const для объявления констант и var для объявления переменных. Основную программу пишем после зарезервированного слова begin. End с точкой на конце означает окончание программы.

Раздел uses: вводим модуль crt - работа с экраном, в программе используем очистку экрана с помощью оператора clrscr.

Раздел const: вводим погрешность вычислений и диапазон.

Раздел var: объявляем переменные вещественного типа, необходимы для реализации задачи.

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

Блок-схема

Рис. 10.

Проверяем правильность программного кода - F9, если все правильно, то запускаем программу на выполнение Ctrl+F9. После чего просматриваем результат Alt+F5 (рис.11).

Рис. 11. Результат работы программы

3.2 MathCAD (задача 4)

Зададим х дискретно от 2 до 3, с шагом 0,1.

Теперь для решения одного уравнения с одним неизвестным используем встроенную функцию root(F(x),x) (рис.12).

Рис. 12.

3.3 Excel (задача 4)

В столбец A впишем значения х от 2 до 4, с шагом 0,1. В ячейку B3 впишем формулу =3*A3-4*LN(A3)-5 и маркером заполнения распространим ее Далее, ищем промежуток изменения знака функции - точка пересечения оси ох - и записываем его в ячейке F5. Используем инструмент «Подбор параметра» - «Сервис - Подбор параметра». Установить в ячейке - E5, Значение - 0, Изменяя значение ячейки - F5 (рис.13).

Рис. 13.

уравнение функция матрица программа

3. Дифференциальные уравнения

Решить дифференциальное уравнение первого порядка с начальными условиями y'=y+3x. Начальное условиеy(0) = -1; x[0; 1], N=20

4.1 Pascal (задача 5)

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

Для решения задачи используем два раздела -const для объявления констант и var для объявления переменных. Основную программу пишем после зарезервированного слова begin. End с точкой на конце означает окончание программы.

Раздел const: вводим начальное значение, диапазон вычислений, и количество отрезков на участке поиска значение.

Раздел var: объявляем переменные вещественного типа, необходимы для реализации задачи.

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

Рис. 14.

Запускаем программу на выполнение Ctrl+F9. Посмотреть результат Alt+F5

Рис. 15. Результат работы программы

4.2 MathCAD (задача 5)

Для традиционной нумерации присвоим оператору ORIGIN значение 1. Далее задаем функцию от x и y. Применяем встроенную функцию rkfixed (рис.16).

Рис. 16.

4.3 Excel (задача 5)

Запишем в ячейки А4:А5 расчетные зависимости. Так как ячейка А4 соответствует первой точке, то в нее надо записать начальное значение из начальных условий. В дальнейшем значение абсциссы должно увеличиваться от точки к точке на величину шага. Чтобы обеспечить это, в ячейку А5 запишем формулу =A4+$E$4 и скопируем ее в ячейки диапазона А5:А24.

В ячейку В5 введем расчетную формулу. В ячейку В6 запишем формулу с учетом условий задачи =B4+$E$4*(B4+3*A4). Скопируем формулу из ячейки В6 в ячейки диапазона В6:В24 (рис.17).

Рис.17.

5. Транспортная задача

Сталеплавильная компания располагает тремя заводами М1, М2, М3, способными произвести за некоторый промежуток времени 80, 100 и 70 тыс. т стали соответственно. Свою продукцию компания поставляет четырем потребителям С1, С2, С3, С4 в количестве 80, 50, 50 и 70 тыс. т стали. Стоимость транспортировки 1 тыс. т стали с различных заводов потребителям приведены в матрице

Определить оптимальный план перевозок.

Введём неизвестные:

- объем перевозок с i-го предприятия в j-й пункт потребления;

- стоимость перевозки единицы продукции с i-го предприятия в j-й пункт потребления;

Тогда - искомая функция, которую необходимо минимизировать.

Ограничения:

, где

v - объем производства на i-м предприятии;

p - спрос в j-м пункте потребления.

5.1 MathCAD (задача 6)

После ключевого слова Given оговариваем, что неизвестные затраты должны быть положительными. Для проверки условия задачи на сбалансированность нужно сложить объем потребления и сравнить ее с суммарными возможностями, представим эти суммы в виде элементов матрицы. После этих операций приравняем матрицы сумм к соответствующим v и p (то есть к матрицам потребностей и возможностей). Затем минимизируем заданную функцию с помощью встроенной функции Minimize, после чего будет получен искомый ответ (рис.18).

Рис.18.

5.2 Excel (задача 6)

В ячейки C3:F5 вводим значения тарифов перевозок из условия задачи. В ячейки C11:F13 вводим количество поставляемой продукции. В ячейки С15: F15 вводим функцию ограничения на доставку (=СУММ(C11:C13) и т.д.). В ячейки G11:G13 вводим предельные значения единиц груза, так же в ячейки H11:H13 вводим функцию ограничения количества производимого груза =СУММ(C11:F11) и т.д.). Затем в С17 вписываем формулу целевой функции, состоящей из суммы произведений тарифа перевозки на соответствующие запасы единиц груза (=СУММПРОИЗВ(C3:F5;C11:F13)).

Теперь поставим курсор на ячейку С17 содержащую формулу целевой функции и в меню «Сервис» выбираем Поиск решения. В графе «изменяя ячейки» впишем адреса тех ячеек, которые содержат объем продукции $C$11:$F$13. Поставим ограничения то, что искомые значения должны быть целыми и больше нуля. А также объем продукции не должен превышать объём продукции, имеющихся на заводах и требующихся для магазинов. То есть для баланса необходимо добавить ограничение, а именно: количество условных единиц, доставляемого объектам не должен превышать количества запасов, имеющегося для отправления, а так же количество условных единиц груза, доставляемого на каждый объект должен соответствовать условию задачи (рис.19).

Рис.19.

6. Задача о назначениях

Имеется n преподавателей и m видов занятий. Стоимость выполнения i-м преподавателем j-го вида занятия приведена в таблицах, где преподавателям соответствуют строки, а видам занятий - столбцы. Составить план проведения учебных занятий так, чтобы все виды занятий были проведены, каждый преподаватель был занят только на одном виде занятий, а суммарная стоимость проведения всех видов занятий была минимальной.

Преподаватели

Почасовая оплата курсов

1

2

3

4

5

1

1000

620

200

500

0

2

600

300

910

900

0

3

300

800

300

900

0

4

100

500

210

700

0

5

300

720

1100

500

0

Решение:

Построение математической модели задачи - пусть в случае выполнения i-м преподавателем j-го вида занятий, и - в случае невыполнения вида занятий. Тогда математическая модель задачи примет вид:

- найти минимум функционала

- при следующих ограничениях:

, ,, где

- почасовая оплата преподавателя;

- объем (нагрузка) преподавателя.

6.1 MathCAD (задача 7)

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

Для упорядочивания поиска решения плана учебных занятий будет индексироваться Х[1..5] [1..5] и в соответствии, с этим составим матрицу С. После чего зададим начальные значения равными единице.

Составим формулу функции, в виде суммарных произведений почасовой оплаты курсов на количество курсов. После ключевого слова Given оговариваем, что неизвестные должны быть положительными. Для проверки условия задачи на сбалансированность нужно сложить количество проведенных занятий и сравнить ее с суммарным объёмом занятий у каждого из преподавателей, представим эти суммы в виде элементов матрицы. После этих операций приравняем матрицы сумм к матрицам проведенных занятий и количеству занятий у каждого из преподавателей. Затем минимизируем заданную функцию с помощью встроенной функции Minimize, после чего будет получен искомый ответ (рис. 20).

Рис. 20.

6.2 Excel (задача 7)

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

В ячейки C3:G7 вводим значения почасовой оплаты курсов для каждого из преподавателей. В ячейки C13:G17 вводим предельные значения количества курсов у каждого из преподавателей (изначально нули). В ячейки C19:G19 вводим функцию ограничения на суммарное количество оплаты первого и т.д. курсов (=СУММ(C13:C17) и т.д.), так же в ячейки I13:I17 вводим функцию ограничения на суммарное количество курсов у каждого преподавателя (=СУММ(C13:G13) и т.д.). В ячейку C21 вводим формулу целевой функции состоящей из суммы произведения почасовой оплаты курсов на количество курсов (=СУММПРОИЗВ(C3:G7;C13:G17)).

Теперь поставим курсор на ячейку C21 содержащую формулу целевой функции и в меню «Сервис» выбираем Поиск решения. В графе «изменяя ячейки» впишем адреса тех ячеек, которые содержат количество курсов у каждого из преподавателей $C$13:$G$17. Поставим ограничения то, что искомые значения должны быть целыми и больше нуля. А также количество курсов не должно превышать допустимого значения. То есть для баланса необходимо добавить ограничение, а именно: каждый преподаватель должен быть занят только на одном виде занятий и все виды занятий должны быть проведены (рис.21).

Рис. 21. Заполнения окна «Поиск решения»

Рис. 22.

7. Функция одной переменной

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

[1;10]

0,1

7.1 Pascal (задача 8)

Для работы с графикой из программы на Паскале в директории, откуда она запускается, должен присутствовать файл EGAVGA.BGI. Кроме того, при компиляции такой программы должен быть доступен файл GRAPH.TPU, содержащий подпрограммы отрисовки графических объектов. Файлы *.BGI это графические адаптеры, отвечающие за работу с мониторами различных типов. Библиотека GRAPH.TPU подключается стандартным способом с помощью USES.

Графический режим определяется тремя параметрами: разрешение экрана, палитрой, числом видеостраниц. Результат представлен на рис.23.

Program Graphik;

uses Graph;

var

x,dx:real;

x1,x2:real;

y:real;

mx,my:integer;

x0,y0:integer;

px,py:integer;

grDriver:integer;

grMode:integer;

grPath:string;

begin

grDriver:=detect;

grMode:=2;

grPath:='I:\bp\bgi';

InitGraph(grDriver,grMode,grPath);

if GraphResult<>0 then

begin

writeln('oshibka inicializacii graficheskogo regima');

writeln('nagmite Enter');

readln;

Halt;

end;

x0:=320;

y0:=240;

mx:=20;

my:=20;

Line(10,y0,630,y0);

Line(x0,10,x0,470);

x1:=1;

x2:=10;

dx:=0.1;

x:=x1;

while(x<x2) do

begin

y:=(exp(x)+1)/(exp(x)-1);

px:=x0+Round(x*mx);

py:=y0-Round(y*my);

PutPixel(px,py,15);

x:=x+dx;

end;

readln;

closegraph;

end.

Рис. 23. Результат работы программы

7.2 MathCAD (задача 8)

В начале зададим последовательность аргументов в заданном нам интервале и с заданным шагом. Далее записываем функцию и строим график этой функции. На панели «Графики» нажмем кнопку создать «X-Y график». Результат на рис.24.

Рис. 24.

7.3 Excel (задача 8)

В столбец A4 впишем значения х от 1 до 10, с шагом 0,1. В ячейку B4 впишем формулу (=(EXP(A4)+1)/(EXP(A4)-1)) и маркером заполнения распространим ее. Далее строим график. Используем инструмент «Мастер диаграмм» на панели инструментов или «Вставка - Диаграмма». Результат на рис.25.

Рис. 25.

Заключение

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

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

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

Библиографический список

1. Соколова, Е.В. MathCAD в инженерно-экономических расчетах: Учебное пособие / Е.В. Соколова, Р.А. Андрианова, Е.Н. Заскалина. -- Челябинск: Изд-во ЮУрГУ, 2004.

2. Соколова, Е.В. Microsoft Excel в инженерно-экономических расчетах: Сборник заданий / Е.В. Соколова, Е.Н. Заскалина,-- Челябинск: Изд-во ЮУрГУ, 2007.

3. Харина, Л.В. Турбо Паскаль. Программирование: Учебное пособие / Л.В. Харина, Е.Н. Заскалина - Челябинск: Изд-во ЮУрГУ,2002.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.