如何用数值计算1 /(√x·(x + 1))的积分;

Imr*_*ran 0 matlab

这是感兴趣的函数的函数处理程序:

fun = @(x) 1 / (sqrt(x) * (x + 1));

q = integral(fun, 0, inf)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

 Error using  * 
    Inner matrix dimensions must agree.
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

Wol*_*fie 7

.定义元素操作而不是矩阵操作时,必须使用句点.这是integral功能输入所必需的.

你的功能应该是

fun = @(x) 1./(sqrt(x).*(x+1));
Run Code Online (Sandbox Code Playgroud)

给予

q = integral(fun,0,inf)

q =

3.1416
Run Code Online (Sandbox Code Playgroud)

有关Array与Matrix操作的概述文章可能很有用,概述了所有元素.类型的函数. https://uk.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html

具体来说,看到multplication和右阵列的划分这些帮助文章给你一个想法:https://www.mathworks.com/help/matlab/ref/times.html,https://www.mathworks.com/help /matlab/ref/rdivide.html