ВУЗ:
Составители:
Файл-функция, вычисляющая левую часть системы:
function F = largesys(x)
n = length(x);
F = rand(n,1);
F(1) = 2*x(1)^2-x(2)-1;
for i = 2:n-1
F(i) = -x(i-1)+2*x(i)^2-x(i+1)-1;
end
F(n) = -x(n-1)+2*x(n)^2-1;
Файл-функция, вычисляющая левую часть системы и возвращающая
якобиан:
function [F, J] = largesys(x)
n = length(x);
F = rand(n,1);
F(1) = 2*x(1)^2-x(2)-1;
for i = 2:n-1
F(i) = -x(i-1)+2*x(i)^2-x(i+1)-1;
end
F(n) = -x(n-1)+2*x(n)^2-1;
% Если число выходных аргументов более единицы, то требуется найти
% разреженное представление якобиана
if nargout>1
% якобиан является суммой трех матриц J = D+D1+D1'
% Формирование диагонали матрицы D
d = 4*x;
% Инициализация разреженного представления для матрицы D
Diag = sparse(1:n, 1:n, d, n, n);
% Формирование вектора побочной диагонали
d2 = -ones(1,n-1);
% Инициализация разреженного представления для матрицы D1
D1 = sparse(2:n, 1:n-1, d2, n, n);
% Вычисление разреженного якобиана
J = Diag+D1+D1';
end
Файл-программа для решения большой системы нелинейных уравнений:
n = 1000; % число переменных
x0 = ones(1,n); % начальное приближение
% Формирование структуры options
options = optimset('Display', 'iter', 'Jacobian', 'on',...
Файл-функция, вычисляющая левую часть системы:
function F = largesys(x)
n = length(x);
F = rand(n,1);
F(1) = 2*x(1)^2-x(2)-1;
for i = 2:n-1
F(i) = -x(i-1)+2*x(i)^2-x(i+1)-1;
end
F(n) = -x(n-1)+2*x(n)^2-1;
Файл-функция, вычисляющая левую часть системы и возвращающая
якобиан:
function [F, J] = largesys(x)
n = length(x);
F = rand(n,1);
F(1) = 2*x(1)^2-x(2)-1;
for i = 2:n-1
F(i) = -x(i-1)+2*x(i)^2-x(i+1)-1;
end
F(n) = -x(n-1)+2*x(n)^2-1;
% Если число выходных аргументов более единицы, то требуется найти
% разреженное представление якобиана
if nargout>1
% якобиан является суммой трех матриц J = D+D1+D1'
% Формирование диагонали матрицы D
d = 4*x;
% Инициализация разреженного представления для матрицы D
Diag = sparse(1:n, 1:n, d, n, n);
% Формирование вектора побочной диагонали
d2 = -ones(1,n-1);
% Инициализация разреженного представления для матрицы D1
D1 = sparse(2:n, 1:n-1, d2, n, n);
% Вычисление разреженного якобиана
J = Diag+D1+D1';
end
Файл-программа для решения большой системы нелинейных уравнений:
n = 1000; % число переменных
x0 = ones(1,n); % начальное приближение
% Формирование структуры options
options = optimset('Display', 'iter', 'Jacobian', 'on',...
Страницы
- « первая
- ‹ предыдущая
- …
- 58
- 59
- 60
- 61
- 62
- …
- следующая ›
- последняя »
