matlab - Matlab 中的向量化求解

标签 matlab vectorization symbolic-math

我有以下代码:

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)

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

关于matlab - Matlab 中的向量化求解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35722709/

相关文章:

python - Sympy "global"替换

Matlab内部 yield

c - 奇怪的 MEX 文件行为

r - 从数据帧子集中对因子变量进行有效采样

matlab - 对向量中相同的元素进行分组和求和

arrays - MATLAB中没有for循环的多个数组的交集

matlab - 计算 "sym"变量的数字部分

r - R中方程组的求解

matlab - 你如何使用matlab在有限域上绘制椭圆曲线

image - 在不引入插值的情况下在matlab中调整图像大小