Matlab 中向量的积分积

问题描述 投票:0回答:1

我正在尝试积分一个涉及向量乘法的函数。但是我不断收到错误。

假设 alphas 是某个向量。 并考虑以下代码:

g = @(x)prod(x.*alphas);
integral(g,-10,10);

这会产生以下错误:

使用 .* 时出错

矩阵尺寸必须一致。

@(x)prod(x.*alphas) 中的错误

现在,谈谈天真的观点。 g 是一个标量函数。如果 x 是某个数字,那么 g(x) 也是一个数字。

我对Matlab很陌生,我不太明白这个问题。 任何帮助都会有所帮助。 谢谢。

matlab numerical-integration
1个回答
2
投票

如果

alphas
是一个向量,则每个
x
都应该有一个值。例如,当您给
integral()
一个要积分的函数时,它会尝试将函数
g
计算为
g(-10:0.1:10)
。如果 alpha 的数量与
x
不同,则会抛出该错误。

这里使用

integral()
的问题是,你无法控制
x
内给予
g
integral
的数量,因此,如果你想的话,你不能像你那样定义
g
整合。

编辑: 以下内容即可完成工作!谢谢@Andras Deak

integral(g,-10,10,'arrayvalued',true);
© www.soinside.com 2019 - 2024. All rights reserved.