Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回Ax=b的完整解的MATLAB函数_Matlab - Fatal编程技术网

返回Ax=b的完整解的MATLAB函数

返回Ax=b的完整解的MATLAB函数,matlab,Matlab,我有一个家庭作业,任务是写一个MATLAB函数,我担心我在当前的答案中遗漏了一些东西。该函数返回形式为Ax=b的线性方程的完整解,其中a为方阵,b为适当维数的向量。函数的第一行是 function [Bs, Ns] = a(A, b) 其中,Bs是基本解(一个向量),Ns是零解-一个矩阵,其列是a的零空间的基础。就所使用的代码而言,还有一些注意事项: 代码将基于一组测试用例进行标记 代码中可以使用内置函数,但它必须是我的原创作品 产生错误或警告的代码(如针对奇异矩阵的代码)将被指定一个失败标

我有一个家庭作业,任务是写一个MATLAB函数,我担心我在当前的答案中遗漏了一些东西。该函数返回形式为Ax=b的线性方程的完整解,其中a为方阵,b为适当维数的向量。函数的第一行是

function [Bs, Ns] = a(A, b)
其中,
Bs
是基本解(一个向量),
Ns
是零解-一个矩阵,其列是a的零空间的基础。就所使用的代码而言,还有一些注意事项:

  • 代码将基于一组测试用例进行标记
  • 代码中可以使用内置函数,但它必须是我的原创作品
  • 产生错误或警告的代码(如针对奇异矩阵的代码)将被指定一个失败标记
  • 可以假设测试集包含的矩阵全部为零、非奇异,或者秩不足(存在完整的解决方案,但MATLAB将产生错误或警告)
下面是我写的代码

function [Bs, Ns] = a(A, b)
ncols = size(A, 2);
x = pinv(A)*b;
Bs = x;
if ncols == rank(A)
    Ns = zeros(ncols,1);
else
    Ns = null(A);
end
end

函数的简单性让我担心我在解释列出的注意事项时遗漏了一些东西(作业价值最终分数的4%),或者有些测试用例会导致错误/警告。如果您有任何意见,我们将不胜感激。

看起来应该行得通吗?这是一门编程课还是一门线性代数课?我的两分钱:给你的学生起个有意义的名字function@MatthewGunn谢谢你看。这是一门专注于线性代数的计算机科学课程——“科学计算”。@brainkz我同意这会是一个进步,但我们被指示使用这个函数名。我唯一想知道的是,当他们指的是“内置”函数时,他们想要的是更原始一点的东西。您可以在上执行奇异值分解,并使用该分解计算零空间和伪逆。您当前的代码实际计算svd 3次:P一次用于“pinv”,一次用于“rank”,一次用于“null”