对于n = 2 ... 11,设置大小为m×n的范德蒙矩阵A,并为每个n给定数据集a。 Matlab的

时间:2018-11-26 22:27:59

标签: matlab matrix

我获得了50个数据点的集合,其中i = 1,...,50的值为{a ^(i),b ^(i)} 存储在数组a和b中。 我知道范德蒙德矩阵A的大小为m x n,其中n = 2 ... 11,m是数组a的大小。

对于n = 2,...,11,我想用度数(n − 1)的多项式拟合数据。为此,我必须设置大小为m×n的范德蒙德矩阵A。

范德蒙德矩阵A求解以下方程式: A^T*A*x = A^T*b

其中A ^ T是转置矩阵,我已经给出b了。 我们也知道Aij = (a^(i))^(j−1)等于j = 1,...,n, 令我困惑的是如何将矩阵设置为n = 2,..,11。

我的思路是: 我有m = length(a);,这将设置m = 50;

n = 11;

然后A=ones(m,n);将创建一个矩阵A,并用正确大小的矩阵填充。

但是我不确定如何填充矩阵。 我写了以下for循环,我认为它将填充矩阵:

for n = 2:11
    j=n;
    for i = 1:50
        A(i,n) = (a^(i))^(j-1);
    end
end

您能帮我设置矩阵吗?

1 个答案:

答案 0 :(得分:0)

您应该使用vander函数。但是,boost::filtered_graph<Graph, boost::keep_all, decltype(vertexes_filter)> auxilary(g, boost::keep_all(), vertexes_filter); some_naive_user_function(g, std::cout << "\n---- Origina (via naive user function)\n"); some_naive_user_function(auxilary, std::cout << "\n---- Filtered (via naive user function)\n"); 将返回一个m x m的矩阵,该矩阵通常用于将数据拟合为次数为(m-1)的多项式。由于您想拟合一个次数为n-1的多项式,因此只需要该矩阵的最后n列。

代码如下:

$subject = "Hallo my Friend";
$content = "<html>.......</html>"
echo "<a href="mailto:loads@lists.eichert-klaus.de?subject='.html_entity_decode($subject).'&body='.urlencode($content).'">";