Курсовая работа: Исследование метода дифференцирования по параметру для решения нелинейных САУ

1.Необходимость определения матрицы J = F / X .

При этом существует два подхода:

- аналитический способ. Здесь метод Ньютона особенно эффективен. Однако точные формулы могут быть слишком громоздкими, что повышает вероятность ошибки. Кроме того функцииF(X) могут быть заданы таблично;

- конечно-разностная аппроксимация. При этом используется формула:

δ fi xj = ( fi ( x 1 , …, xj + ∆ xj , …, xn ) - fi ( x 1 , …, xj - ∆ xj , …, xn )) / 2δ xj .

В этом случае имеем дискретный метод Ньютона, который уже не обладает квадратичной сходимостью. Скорость сходимости можно увеличить, уменьшая xj по мере приближения к X * .

2. Вычисление матрицы J -1 на каждом шаге требует значительных вычислительных затрат. Поэтому часто вместо этого решают систему линейных АУ, которая формируется следующим образом. Очевидно, что Xm = Xm +1 - Xm . Тогда после алгебраических преобразований алгоритм Xm +1 = Xm J -1 ( Xm ) · F ( Xm ) примет вид:

J ( Xm ) · ∆ Xm = - F ( Xm ).

На каждом m -м шаге матрицыJ ( Xm ) и F ( Xm ) известны. Необходимо найти Xm , как решение системы линейных АУ J ( Xm ) · ∆ Xm = - F ( Xm ) . Тогда

Xm +1 = Xm + ∆ Xm .


Решение системы J ( Xm ) · ∆ Xm = - F ( Xm ) – наиболее трудоемкий этап, который определяет вычислительную эффективность каждой итерации.

2. ОПИСАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

2.1 Общие сведения

Наименования файлов, из которых состоит пакет: main.m, rk1.m, rk2, rk4.m, funf.m, dmn.m, dif.m .

Головная программа – файл main.m, остальные – внешние функции данной программы.

Программное обеспечение: ОС класса Windows.

Язык, на котором написана программа: MatLab (Version 5.1).

2.2 Функциональное назначение

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

2.3 Описание логической структуры

Файл описания системы - funf.m. С помощью файла dif.m формируется система ОДУ, затем система интегрируется с помощью явных методов Рунге-Кутта (rk1.m, rk2, rk4.m), и полученное решение уточняется дискретным методом Ньютона (dmn.m). В файле main.m можно изменять шаг интегрирования, начальное решение системы, допустимую ошибку при уточнении, начальный и конечный моменты времени…

Головная программа

В головной программе задаются начальные значения необходимых параметров, а также производится вызов основных функций, необходимых для реализации метода дифференцирования по параметру. В течение одного цикла работы программы вызываются последовательно функции rk1.m, rk2.m, rk4.m, вычисляющие приближенные значения по методам Рунге – Кутта 1-го, 2-го и 4-го порядков. После каждого из них производится вызов функции dmn.m, вычисляющей уточненное значение по дискретному методу Ньютона, строятся графики и выводятся значения полученных решений системы и ошибок интегрирования; значения уточненных решений системы и ошибок интегрирования, полученных в процессе итераций. В конце работы каждого цикла выводится число шагов, за которое было получено приближенное решение и число итераций, за которое было получено уточненное решение.

Текст программы (файл Main.m):

t0=0;

tfinal=1;

y0=[2 0];

h=0.1;

trace=1;

disp('Метод Рунге - Кутта 1го порядка');pause;

[tout,yout,x]=rk1('dif',t0,tfinal,y0,h,trace);

subplot(2,1,1);

plot(tout,yout(:,1));

grid;

title(sprintf('МетодРунге - Кутта 1го порядка'));

ylabel('y(1)'); xlabel('t');

subplot(2,1,2);

plot(tout,yout(:,2));

grid;

ylabel('y(2)'); xlabel('t');

pause;

x0=x';

dx=[0.01;0.01];

Ed=0.000001;

[x,dx,m] = dmn('funf',x0,dx,Ed);

К-во Просмотров: 542
Бесплатно скачать Курсовая работа: Исследование метода дифференцирования по параметру для решения нелинейных САУ