Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ



ЦЕЛЬ РАБОТЫ

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

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

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

2. Оформите отчет по лабораторной работе, который должен содержать:

· титульный лист;

· исходные данные варианта;

· решение задачи;

· результаты решения задачи.

 

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Пример 6.1.

Решить систему нелинейных уравнений методом Ньютона с точностью 0, 001:

Решение:

Перепишем данную систему в виде

Отделение корней произведем графически:

> > x1=-2: 0.1: 2;

> > y1=sin(x1-0.6)-1.6;

> > y2=-3: 0.1: 3;

> > x2=(0.9+cos(y2))/3;

> > plot(x1, y1, 'R', x2, y2)

> > grid on

Получим следующие графики:

Рис. 6.1. Графики функций: (красная линия)

и (синяя линия)

 

Из графика видно, что система имеет одно решение, заключенное в области D: 0< x< 0, 5, -2, 5< y< -1, 5.

Перепишем систему в следующем виде:

Найдем частные производные:

Возьмем начальное приближение , .

1. Создайте файл F_6.m (листинг 6.1), содержащий описание функции .

Листинг 6.1. Файл F_6.m.

function z=F_6(x, y)

z=sin(x-0.6)-y-1.6;

2. Создайте файл G_6.m (листинг 6.2), содержащий описание функции .

Листинг 6.2. Файл G_6.m.

function z=G_6(x, y)

z=3*x-cos(y)-0.9;

3. Создайте файл Fх_6.m (листинг 6.3), содержащий описание функции .

Листинг 6.3. Файл Fх_6.m.

function z=Fx_6(x, y)

z=cos(x-0.6);

4. Создайте файл Fу_6.m (листинг 6.4), содержащий описание функции .

Листинг 6.4. Файл Fу_6.m.

function z=Fy_6(x, y)

z=-1;

5. Создайте файл Gх_6.m (листинг 6.5), содержащий описание функции .

Листинг 6.5. Файл Gх_6.m.

function z=Gx_6(x, y)

z=3;

6. Создайте файл Gу_6.m (листинг 6.6), содержащий описание функции .

Листинг 6.6. Файл Gу_6.m.

function z=Gy_6(x, y)

z=sin(y);

7. Создайте файл SysNuton.m (листинг 6.7), содержащий описание функции, возвращающей решение системы нелинейных уравнений методом Ньютона.

Листинг 6.7. Файл SysNuton.m.

function SysNuton(f, g, fx, fy, gx, gy, x0, y0, esp)

x1=x0+(feval(g, x0, y0)*feval(fy, x0, y0)-feval(f, x0, y0)*feval(gy, x0, y0))/(feval(fx, x0, y0)*feval(gy, x0, y0)-feval(fy, x0, y0)*feval(gx, x0, y0));

y1=y0+(feval(f, x0, y0)*feval(gx, x0, y0)-feval(g, x0, y0)*feval(fx, x0, y0))/(feval(fx, x0, y0)*feval(gy, x0, y0)-feval(fy, x0, y0)*feval(gx, x0, y0));

k=1;

while abs(x1-x0)> esp & abs(y1-y0)> esp

x0=x1;

y0=y1;

x1=x0+(feval(g, x0, y0)*feval(fy, x0, y0)-feval(f, x0, y0)*feval(gy, x0, y0))/(feval(fx, x0, y0)*feval(gy, x0, y0)-feval(fy, x0, y0)*feval(gx, x0, y0));

y1=y0+(feval(f, x0, y0)*feval(gx, x0, y0)-feval(g, x0, y0)*feval(fx, x0, y0))/(feval(fx, x0, y0)*feval(gy, x0, y0)-feval(fy, x0, y0)*feval(gx, x0, y0));

k=k+1;

end;

x=x1

y=y1

k

8. Найдите решение системы:

> > SysNuton('F_6', 'G_6', 'Fx_6', 'Fy_6', 'Gx_6', 'Gy_6', 0.1, -2, 0.001)

x =

0.1511

y =

-2.0340

k =

Таким образом, мы получили решение системы x =0.1511, y =-2.0340 за две итерации.

 

Решение систем нелинейных уравнений в MATLAB осуществляется функцией fsolve(), которая имеет вид:

fsolve(‘file’, x0)

где file – система уравнений, сохраненная в m-файле.

Пример 6.2.

Пусть содержимое файла имеет вид:

function F=myfun(x)

F=[sin(x(1)-0.6)-x(2)-1.6; 3*x(1)-cos(x(2))-0.9]

Программа и результаты решения имеют вид:

> > x0=[0.1; -2];

> > X=fsolve('myfun', x0)

X =

0.1511

-2.0340

ПРИМЕРНЫЕ ВОПРОСЫ НА ЗАЩИТЕ РАБОТЫ

1. Какие вы знаете методы решения систем нелинейных уравнений?

2. В чем заключается суть метода Ньютона для решения систем нелинейных уравнений?

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

4. В чем заключается суть методов спуска для решения систем нелинейных уравнений? Какие виды методов спуска вы знаете?

ЗАДАНИЕ

1. Отделить решение системы графически.

2. Решить систему методом Ньютона с точностью 0, 001.

Варианты заданий.

№ варианта Задание

 

РАБОТА №7

ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ

ЦЕЛЬ РАБОТЫ

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

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

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

2. Оформите отчет по лабораторной работе, который должен содержать:

· титульный лист;

· исходные данные варианта;

· решение задачи;

· результаты решения задачи.

 

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Пример 7.1.

Рассмотрим функцию f(x), заданную таблично:

х у
0, 43 1, 6359
0, 48 1, 7323
0, 55 1, 8768
0, 62 2, 0304
0, 7 2, 2284
0, 75 2, 3597

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

Решение:

1. Создайте файл Pol.m (листинг 7.1), содержащий описание функции, возвращающей значения полинома .

Листинг 7.1. Файл Pol.m.

function z=Pol(a, x1)

M1=length(a);

s=0;

for i=1: M1

s=s+a(i)*x1.^(M1-i);

end;

end;

z=s;

 

2. Создайте файл Vandermond.m (листинг 7.2), содержащий описание функции, возвращающей значения элементов матрицы Вандермонда.

Листинг 7.2. Файл Vandermond.m.

function z=Vandermond(x)

N=length(x);

z=ones(N, N);

for i=1: N

for j=1: N

z(i, j)=x(i).^(N-j);

end;

end;

3. Задайте значения экспериментальных данных.

> > x=[0.43; 0.48; 0.55; 0.62; 0.70; 0.75]

x =

0.4300

0.4800

0.5500

0.6200

0.7000

0.7500

> > y=[1.6359; 1.7323; 1.8768; 2.0304; 2.2284; 2.3597]

y =

1.6359

1.7323

1.8768

2.0304

2.2284

2.3597

4. Вычислите значения элементов матрицы Вандермонда.

> > M=Vandermond(x)

M =

0.0147 0.0342 0.0795 0.1849 0.4300 1.0000

0.0255 0.0531 0.1106 0.2304 0.4800 1.0000

0.0503 0.0915 0.1664 0.3025 0.5500 1.0000

0.0916 0.1478 0.2383 0.3844 0.6200 1.0000

0.1681 0.2401 0.3430 0.4900 0.7000 1.0000

0.2373 0.3164 0.4219 0.5625 0.7500 1.0000

5. Вычислите значения коэффициентов полинома.

> > a=M^-1*y

a =

-152.9063

444.9904

-511.6367

291.7494

-80.6863

10.0997

Таким образом, полином имеет вид:

6. Вычислить значение полинома в заданной промежуточной точке х=0, 53.

> > x1=0.53;

> > y1=Pol(a, x1)

y1 =

1.8349

7. Постройте график найденного полинома.

> > x1=0.43: 0.01: 0.75;

> > y1=Pol(a, x1);

> > plot(x1, y1)

Рис. 7.1. График функции

 

Аппроксимация полиномами в среде MATLAB осуществляется с помощью функции polyfit(), которая имеет вид:

polyfit(x, y, n)

где:

ü x – вектор узлов интерполяции;

ü y – вектор значений функции в узлах интерполяции;

ü n – степень полинома.

Откликом при реализации функции polyfit() является вектор коэффициентов полинома.

Пример 7.2.

Выполните следующие действия:

> > x=[0.43; 0.48; 0.55; 0.62; 0.70; 0.75];

> > y=[1.6359; 1.7323; 1.8768; 2.0304; 2.2284; 2.3597];

> > polyfit(x, y, 5)

После нажатия клавиши < Enter> ответ получим в следующем виде:

ans =

-152.9063 444.9904 -511.6367 291.7494 -80.6863 10.0997

Тогда функцией интерполяции будет следующий полином пятой степени:

Решение совпадает с полученным в предыдущем примере.

 

Интерполяция кубическими сплайнами в среде MATLAB осуществляется с помощью функции spline(). Функция имеет вид:

yi=spline(x, y, xi)

где:

ü x – вектор узлов интерполяции;

ü y – вектор значений функции в узлах интерполяции;

ü xi – вектор аргументов функции y=f(x) из области ее определения, задаваемый пользователем.

Пример 7.3.

Найдем значение функции при х=0, 53, выполнив для этого следующие действия:

> > x=[0.43; 0.48; 0.55; 0.62; 0.70; 0.75];

> > y=[1.6359; 1.7323; 1.8768; 2.0304; 2.2284; 2.3597];

> > xi=0.53;

> > yi=spline(x, y, xi)

yi =

1.8347

Построим график функции:

> > xi=0.43: 0.01: 0.75;

> > yi=spline(x, y, xi);

> > plot(xi, yi)

Рис. 7.2. График функции, значения которой найдены с помощью кубического сплайна.

 

ПРИМЕРНЫЕ ВОПРОСЫ НА ЗАЩИТЕ РАБОТЫ

1. Что такое интерполяция?

2. Что такое узлы интерполяции?

3. В чем заключается задача отыскания интерполирующего многочлена?

4. Как построить интерполяционный многочлен Лагранжа?

5. Как определить погрешность метода интерполяции с помощью формулы Лагранжа?

6. Как образуются разделенные разности?

7. Как связаны разделенные разности и производная?

8. Что такое сплайн? Как происходит процесс интерполирования сплайнами?

9. Что такое конечная разность первого порядка? Как она находится?

10. Что такое конечная разность второго порядка? Как она находится?

11. Что такое конечная разность n-го порядка? Как она находится?

12. Первая интерполяционная формула Ньютона для равноотстоящих узлов.

13. Вторая интерполяционная формула Ньютона для равноотстоящих узлов.

14. Как находится погрешность метода интерполирования с помощью формул Ньютона?

15. Что значит «интерполирование вперед», «интерполирование назад»?

ЗАДАНИЕ

1. Построить интерполяционный многочлен методом неопределенных коэффициентов.

2. Построить график интерполяционной функции.

3. Найти приближенные значения функции при данных промежуточных значениях аргумента.

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

 

Варианты заданий.

x y x y x y
1, 415 0, 8886 0, 101 1, 2618 0, 15 0, 8607
1, 420 0, 8900 0, 106 1, 2764 0, 20 0, 8187
1, 425 0, 8906 0, 111 1, 2912 0, 25 0, 7788
1, 430 0, 8917 0, 116 1, 3061 0, 30 0, 7408
1, 435 0, 8927 0, 121 0, 3213 0, 35 0, 7046
1, 440 0, 8940 0, 126 1, 3366 0, 40 0, 6703
1, 445 0, 8947 0, 131 1, 3521 0, 45 0, 6376
1, 450 0, 8957 0, 136 1, 3677 0, 50 0, 6065
1, 455 0, 8967 0, 141 1, 3836 0, 55 0, 5769
1, 460 0, 8977 0, 146 1, 3995 0, 60 0, 5488
1, 465 0, 8986 0, 151 1, 4157 0, 65 0, 5220
в точке x=1, 4161 в точке x=0, 1026 в точке x=0, 7250
x y x y x y
0, 180 5, 6154 3, 50 33, 115 0, 115 8, 6572
0, 185 5, 4669 3, 55 34, 813 0, 120 8, 2932
0, 190 5, 3263 3, 60 36, 598 0, 125 7, 9582
0, 195 5, 1930 3, 65 38, 474 0, 130 7, 6489
0, 200 5, 0664 3, 70 40, 447 0, 135 7, 3623
0, 205 4, 9461 3, 75 42, 521 0, 140 7, 0961
0, 210 4, 8317 3, 80 44, 701 0, 145 6, 8481
0, 215 4, 7226 3, 85 46, 993 0, 150 6, 6165
0, 220 4, 6185 3, 90 49, 402 0, 155 6, 3998
0, 225 4, 5191 3, 95 51, 935 0, 160 6, 1965
0, 230 4, 4242 4, 00 54, 598 0, 165 6, 0055
в точке x=0, 175 в точке x=3, 475 в точке x=0, 1745
x y x y x y
1, 340 4, 2556 0, 01 0, 9918 0, 15 4, 481
1, 345 4, 3532 0, 06 0, 9519 0, 16 4, 953
1, 350 4, 4552 0, 11 0, 9136 0, 17 5, 473
1, 355 4, 5618 0, 16 0, 8769 0, 18 6, 049
1, 360 4, 6734 0, 21 0, 8416 0, 19 6, 685
1, 365 4, 7903 0, 26 0, 8077 0, 20 7, 389
1, 370 4, 9130 0, 31 0, 7753 0, 21 8, 166
1, 375 5, 0419 0, 36 0, 7441 0, 22 9, 025
1, 380 5, 1774 0, 41 0, 7141 0, 23 9, 974
1, 385 5, 3201 0, 46 0, 6854 0, 24 11, 023
1, 390 5, 4706 0, 51 0, 6579 0, 25 12, 182
в точке x=1, 3921 в точке x=0, 492 в точке x=0, 2444
x y x y x y
0, 45 20, 194 1, 345 4, 3532 0, 130 7, 6489
0, 46 19, 613 1, 350 4, 4552 0, 135 7, 3623
0, 47 18, 942 1, 355 4, 5618 0, 140 7, 0961
0, 48 18, 174 1, 360 4, 6734 0, 145 6, 8481
0, 49 17, 301 1, 365 4, 7903 0, 150 6, 6165
0, 50 16, 312 1, 370 4, 9130 0, 155 6, 3998
0, 51 15, 198 1, 375 5, 0419 0, 160 6, 1965
0, 52 13, 948 1, 380 5, 1774 0, 165 6, 0055
0, 53 12, 550 1, 385 5, 3201 0, 170 5, 8255
0, 54 10, 993 1, 390 5, 4706 0, 175 5, 6558
0, 55 9, 264 1, 395 5, 6296 0, 180 5, 4954
в точке x=0, 445 в точке x=1, 374 в точке x=0, 158

 


РАБОТА №8

ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ

ЦЕЛЬ РАБОТЫ

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

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

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

2. Оформите отчет по лабораторной работе, который должен содержать:

· титульный лист;

· исходные данные варианта;

· решение задачи;

· результаты решения задачи.

 

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Пример 8.1.

Рассмотрим функцию f(x), заданную таблично:

х у
0, 43 1, 6359
0, 48 1, 7323
0, 55 1, 8768
0, 62 2, 0304
0, 7 2, 2284
0, 75 2, 3597

Интерполяционный многочлен имеет вид:

Вычислим значения производной этой функции на отрезке [0, 43; 0, 75]:

> > dx=0.01;

> > x=0.43: dx: 0.75;

> > yf=-154.9063*x.^5+444.9904*x.^4-511.6367*x.^3+291.7494*x.^2-80.6863*x+10.099;

> > N=length(x);

> > m=1: N-1;

> > df(m)=(yf(m+1)-yf(m))/dx;

> > plot(df)

 

Рис. 8.1. График производной функции.

 

ПРИМЕРНЫЕ ВОПРОСЫ НА ЗАЩИТЕ РАБОТЫ

1. Дайте определение производной функции.

2. Как выглядит приближенная формула численного дифференцирования?

3. Что такое аппроксимация?

4. Интерполяционная формула Лагранжа для равноотстоящих узлов.

5. Формула численного дифференцирования на основе интерполяционной формулы Лагранжа.

6. Формула для оценки погрешности численного дифференцирования по формуле Лагранжа.

7. Формула численного дифференцирования на основе интерполяционных формул Ньютона.

8. Формула для оценки погрешности численного дифференцирования по формуле Ньютона.

9. Как влияет на точность численного дифференцирования величина шага h?

ЗАДАНИЕ

1. Построить интерполяционный многочлен. Использовать варианты и результаты лабораторного занятия № 7.

2. Найти приближенные значения производной функции на интервале интерполирования.

3. Построить график производной функции.


РАБОТА № 9


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 446; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.098 с.)
Главная | Случайная страница | Обратная связь