在matlab中向量化求解

Vectorizing solve in matlab

我有以下代码:

syms y
x=linspace(0,1000,100);
b=solve((1/(x-y))-(1/y)=2,y)

而且它不起作用。我想矢量化解决方案,但不知何故我遗漏了一些东西。我不想单独使用 for 来解决每个值。

非常感谢帮助。

想想你会如何用笔和纸解决它。你不会替换 x 100 次,然后解决它 100 次。而是为 y 求解一次,然后输入 x 值:

syms x y
%use solve once
b=solve((1/(x-y))-(1/y)==2,y)
%generate anonymous function from the solution
c=matlabFunction(b)
%evaluate anonymous function 100 times
result=c(linspace(0,1000,100))
%to get only the highest solution
max(result)

它 returns 一个 2x100 矩阵,因为 solve 找到了两个解。