2010-09-12 3 views
1

Я хочу решить уравнение для другого значения в каждом цикле цикла for. Обычно я включаю значение, которое решаю в функции m-файла, но я не могу изменить файл m в каждом цикле в цикле for. Есть ли способ решить использование fsolve, но для значения! = 0.fsolve для решения! = 0

+0

Кстати, это, кажется, по существу, тот же вопрос, как ваш предыдущий (http://stackoverflow.com/q/3673112/129570); это считается плохой формой, чтобы задать один и тот же вопрос несколько раз. Просто переконфигурируйте свой предыдущий вопрос, если у вас все еще есть проблемы с одной и той же темой ... –

ответ

3

Вы можете использовать anonymous function. Так что, если ваша paramterised функция:

function y = f(x, c) 
... 
end 

, то вы можете перебирать различные параметры таким образом:

for c = 0:10 
    fsolve(@(x)f(x,c), x0); 
end 

(непроверенная)

+1

Это, по сути, правильно, но если цель состоит в том, чтобы решить различные правые стороны в fsolve, тогда цикл может выглядеть эффектно это: для i = 1: numel (rhs), result (i) = fsolve (@ (x) f (x) - rhs (i), x0); end – 2010-09-12 12:28:34

+0

@woodchhips: Да, я полагаю, так! Я предположил, что можно включить константу RHS в саму функцию, но ваш метод лучше. –

Смежные вопросы