Скачиваний:
12
Добавлен:
09.09.2020
Размер:
974.38 Кб
Скачать

31

Флажок Показывать резуль-

таты итераций

Флажок Неотрицательные

значения

Флажок Автоматическое

масштабирование

Группа Оценки

Группа Разности

Группа Метод поиска

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

Служит для приостановки поиска решения и просмотра результатов отдельных итераций

Позволяет установить нулевую нижнюю границу для тех влияющих ячеек, для которых она не была указана в поле Ограничения диалогового окна Доба-

вить ограничения

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

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

Служит для выбора алгоритма оптимизации

8. Нажмите кнопку Выполнить. Средство Поиск решения найдёт оптимальный план поставок горючего и соответствующие ему транспортные расходы

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

 

 

 

 

 

 

 

Поставщики

 

 

Потребители

 

 

 

 

 

 

 

 

1

 

2

 

3

 

 

 

 

 

 

 

 

 

A

 

60

 

0

 

90

 

 

 

 

 

B

 

0

 

70

 

20

 

 

 

 

 

 

 

Значение целевой функции составило 10200 денежных единиц. При этом, экономическая интерпретация результатов будет следующая. Поставщик A перевозит потребителям 1 и 3 – 60 и 90 тонн горючего соответственно, поставщик В – потребителям 2 и 3 – 70 и 20 тонн горючего соответственно. При этом затраты на перевозку продукции будут минимальными и составят 10200 денежных единиц.

Задания

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

Лабораторная работа №6.

32

Обработка данных построением регрессии

Цель работы: научиться строить линейные регрессионные модели экспериментальных данных посредством встроенных функций MathCAD.

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

Выполнение линейной регрессии

Чаще всего используется линейная регрессия, при которой функция у(х) имеет вид у(х) = a+bх и описывает отрезок прямой. К линейной регрессии можно свести многие виды нелинейной регрессии при зависимостях вида у(х).

Для проведения линейной регрессии в систему встроен ряд приведенных функций: corr(VX, VY) – возвращает скаляр – коэффициент корреляции Пирсона; intercept(VX, VY) – возвращает значение параметра а (смещение линии регрессии по

вертикали);

slope(VX, VY) – возвращает значение параметра b (угловой коэффициент линии регрессии).

Рис 3. Пример линейной регрессии На рис.3 показан пример проведения линейной регрессии для данных, представлен-

ных значениями элементов в векторах VX и VY.

33

Линейная регрессия общего вида

При ней заданная совокупность точек приближается к функции вида:

F(x, K1, K2, . . . , Kn) = K1*F1(x) + K2*F2(x) + . . .+ Kn*Fn(x)

Таким образом, функция регрессии является линейной комбинацией функций F1(x), F2(x),...,Fn(x), причём сами эти функции могут быть нелинейными, что резко расширяет возможности такой аппроксимации и распространяет её на нелинейные функции.

Для реализации линейной регрессии общего вида используется функция linfit (VX,VY,F). Она возвращает вектор коэффициентов линейной регрессии общего вида К, при котором среднеквадратичная погрешность приближения "облака" исходных точек, координаты которых хранятся в векторах VX и VY, оказывается минимальной (рис.4). Вектор F должен содержать функции F1(x), F2(x),..., Fn(x), записанные в символьном виде.

Рис. 4. Пример проведения линейной регрессии общего вида

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

Задания

1.Вычислите коэффициенты a и b линейной регрессии для данных точек. Изобразите на одном графике, полученную функцию регрессии и исходные точки.

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

34

35

Лабораторная работа №7. Решение систем уравнений

Цель работы: научиться строить функции в MathCAD для нахождения решений систем линейных и нелинейных уравнений.

Решение линейных уравнений и систем

Векторные и матричные операторы и функции системы Mathcad позволяют решать широкий круг задач линейной алгебры. К примеру, если задана матрица А и вектор В для системы линейных уравнений в матричной форме АХ=В, то вектор решения можно получить из очевидного выражения Х=А-1В. На рис. 1 приведен пример решения системы линейных уравнений. Поскольку решение систем линейных уравнений довольно распространенная задача, то для этого в Mathcad, начиная с шестой версии, введена встроенная функция lsolve(A, В), которая возвращает вектор X для системы линейных уравнений АХ=В при заданной матрице коэффициентов А и векторе свободных членов В. Если уравнений n, размер вектора В должен быть n, а матрицы А - n×n Пример применения этой функции также дан на рис. 1.

Рис.5. Решение системы линейных уравнений

Решение нелинейных уравнений и систем

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

Для простейших уравнений вида F(x)=0 решение находится с помощью следующей функции:

36

гoot(Bыpaжeниe, Имя_переменной)

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

(рис.6).

Рис 6. Пример вычисления корней кубического полинома

Как известно, кубическое уравнение обязательно имеет хотя бы один действительный корень х1. Он найден вначале функцией root. Два других корня могут оказаться как действительными, так и комплексными. Функция root может отыскивать любые корни. Для поиска второго корня х2 первый исключается делением F(x) на (х-х1). Соответственно для поиска третьего корня хЗ нужно повторить процедуру деления, при этом F(x) делится на (х-х2). Эту процедуру можно распространить и на поиск корней полиномов более высокой степени, однако надо помнить, что найти корни полинома можно гораздо более изящным и простым способом – используя функцию символьных вычислений.

Директива Given для подготовки блока решения системы уравнений

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

начальные условия (задаются в виде var := value).

директива Given.

уравнения (задаются в виде expr_left = expr_right).

37

ограничительные условия.

выражения с функциями Find, Minerr.

Начальные условия определяют начальные значения искомых переменных. Они задаются обычным присваиванием переменным заданных значений. Если переменных несколько, то используется векторное представление для начальных условий. Уравнения задаются в виде expr_left = expr_right с применением булева знака равенства = между левой и правой частью каждого уравнения. Ограничительные условия обычно задаются в виде неравенств или равенств, которые должны удовлетворяться при решении системы уравнений.

Рекомендуется дополнить блок проверкой решения системы. Уравнений и ограничительные условия можно задавать в векторной форме. При этом решение может искаться и в символьной форме (если оно, естественно, существует).

Функции Find и Minerr для решения систем нелинейных уравнений

В блоке используется одна из следующих двух функций:

Find(v1, v2, ..., vn) - возвращает значение одной или ряда переменных для точного решения;

Minerr(v1, v2, ..., vn) - возвращает значение одной или ряда переменных для приближенного решения.

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

Ввод ограничений при решении систем нелинейных уравнений

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

е1 больше е2: e1 > e2

е1 меньше е2: e1 < e2

e1 больше или равно е2: e1 Ctrl+) e2

е1 меньше или равно е2: e1 Ctrl+( e2

е1 не равно е2е1 = е2: e1 Ctrl+# e2

e1 равно е2: e1 Ctrl+= e2

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

Функции Find и Minerr могут использоваться для решения одного или ряда уравнений. На рис. 4 показано, что использование оператора присваивания вместо знака символического (логического) равенства в блоке Given некорректно. Поэтому система реагирует на попытку решения сообщением об ошибке. Как уже было сказано, в блоке Given для записи уравнения используется особый (булевый) знак равенства. Присваивание х := 10 задаёт начальное значение для поиска корня уравнения функциями Find и Minerr. Как видно на рис.7 обе, функции (Find и Minerr) дают одинаковое решение.

38

Рис.7. Пример решения с использованием директивы Given

Рис.8. Решение системы из двух уравнений с помощью функции Minerr

39

Задание

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

Соседние файлы в папке лаба MathCAD 22 или 23 варик вроде бы