Передача большего количества переменных в матричный оператор в pcg - Matlab - PullRequest
0 голосов
/ 06 мая 2011

Я хочу вызвать функцию pcg (сопряженный градиент) в Matlab, используя матричный оператор вместо матрицы. Проблема в том, что я хочу передать матричному оператору больше, чем просто вектор x. Я также хочу передать ему другую переменную. Как мне это сделать?

Заранее спасибо.

1 Ответ

0 голосов
/ 06 мая 2011

Я предполагаю, что вы пытаетесь вызвать функцию PCG с первым входом, являющимся дескриптором функции (то, что вы называете матрицей )оператор ) функции afun, которая принимает входные данные вектора X и возвращает матрично-векторное произведение A*X.Если вы хотите предоставить afun другие переменные, помимо просто X, вы можете параметризировать функцию , используя либо вложенные функции , либо анонимные функции .Вот пример анонимной функции:

A = [...];        %# Some matrix you want to use in your function
B = [...];        %# The other matrix to pass to PCG
afun = @(x) A*x;  %# Construct an anonymous function using the current value of A
X = pcg(afun,B);  %# Pass the anonymous function as the first argument
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...