首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将多项式变量传递给matlab函数?

如何将多项式变量传递给matlab函数?
EN

Stack Overflow用户
提问于 2020-01-20 02:29:00
回答 1查看 126关注 0票数 0

我刚刚开始使用MATLAB,我编写了一个函数来生成(x-a)^n在给定xan时的二项式扩展。据我所知,我的代码应该工作,但我似乎没有正确地使用函数变量。

代码语言:javascript
复制
function expand(a,n,x)
f = 0;
for k = 0:1:n
    f = f + nchoosek(n,k).*x.^(n-k).*(-a).^k;
end
end

我需要能够调用函数并将其输出为x中的扩展多项式,例如,调用expand(1,3,x)应该返回x^3-3*x^2+3*x-1,但是调用它会导致以下错误:

未识别的函数或变量'x‘。它似乎要我调用函数,x是另一个数字,但实际上,我需要它能够成为任何字母,作为变量在多项式中使用。

我知道在Maple中,我会将函数中的变量类型指定为x::name,所以我假设在MATLAB中有类似的东西,我还不知道。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-01-20 09:45:47

要做到这一点有两种方法:

  • x创建为一个符号变量。例如,syms x; expand(a,n,x)。这使您可以使用像simplify()这样的符号工具箱特性,但会带来一些性能损失。您应该避免在密集calculations.
  • Return中使用符号工具箱--一个匿名函数,f=@(X)sum(arrayfun(@(k)nchoosek....,1:n)。当您想要一个实际的数值时,这具有更好的性能,并且不需要double(subs(...)),但是对于初学者来说实现起来可能太困难了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59816294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档