【问题标题】:Matlab - Functions: returning a vector of variablesMatlab - 函数:返回变量向量
【发布时间】:2018-05-10 04:47:58
【问题描述】:

我正在为根查找实现定点方法。下面是代码:

clear;
clc;

f = inline('y^4 - 2', 'y');
phii = inline('y - (y^4 -2)/(4*(y^3))', 'y');
x0 = 4;
toler = 10^-10;
nmax = 1000;

a = fixpoint(x0,toler,nmax,f,phii)

function[alpha,res,iters] = fixpoint(x_0,tol,max_iters,fun,phi)

    error = tol +1;
    iters = 0;
    xvect = x_0;
    x = x_0;
    res = fun(x);
    xdif = [];

    while iters < max_iters & error > tol
        iters = iters +1;
        x_n = phi(x);
        error = abs(x_n - x);
        xdif = [xdif; error];
        x = x_n;
        xvect = [xvect;x];
        res = [res;fun(x)];
    end
    alpha = xvect(end);
    residual = res(end);
    return
end

该方法可以正常工作。我遇到的唯一问题是我希望它返回所有三个:alpha、res(一个向量,其中最后一个条目是重要性的残差,但所有值都是必需的)和迭代。

目前它只返回 alpha。

解决此问题的最佳方法是什么?

【问题讨论】:

    标签: matlab numerical-methods numerical-analysis


    【解决方案1】:
    [alpha,res,iters] = fixpoint(x0,toler,nmax,f,phii)
    

    另外,这里不需要return

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 2011-12-20
      • 2018-12-26
      • 2012-10-29
      • 1970-01-01
      相关资源
      最近更新 更多