2016-11-23 47 views
-2

用最简单的术语来说,我有一个函数,我想从f(1)开始并求解方程(假设f(1) = 54)。然后取这个值,并用它来计算下一个值(f(54)=某事),并做50次。我确定我需要使用循环来完成这个任务,但我不知道如何执行它。Matlab - 使用先前计算的值来计算特定迭代次数的新值

用更复杂的术语说,我试图用Gauss-Seidel来解决潮流问题。我可以通过手工计算,程序实际上只需要能够进行以前的计算并将其作为新的变量。我寻找了一个循环,明确指出了如何完成这个任务,但是我发现大部分内容都没有足够的ELI5注释让我将这些代码应用到我正在做的事情上。任何帮助是极大的赞赏。

+2

我的意思是他们甚至在维基页面上提供了一个matlab函数,但仍然是:https://en.wikipedia.org/wiki/Gauss%E2%80%93Seidel_method#Program_to_solve_arbitrary_no._of_equations_using_Matlab – percusse

回答

1
count = 1 ; % counter 
nloops = 50 % times to loop 
while count < nloops 
    if count ==1 
    fresult = f(count); % first loop use count = 1 value as input 
    else 
    fresult = f(fresult); % next loops use fresult as input 
    end 
count = count + 1; 
end 

上面的代码将循环nloop时间。在第一个循环中将f结果存储在fresult变量中,并且在接下来的迭代中将使用fresult的值作为f的输入!

我希望这可以帮助你。