【发布时间】:2017-12-22 01:02:19
【问题描述】:
摆脱循环来简化函数的最佳方法是什么?
function Q = gs(f, a, b)
X(4) = sqrt((3+2*sqrt(6/5))/7);
X(3) = sqrt((3-2*sqrt(6/5))/7);
X(2) = -sqrt((3-2*sqrt(6/5))/7);
X(1) = -sqrt((3+2*sqrt(6/5))/7);
W(4) = (18-sqrt(30))/36;
W(3) = (18+sqrt(30))/36;
W(2) = (18+sqrt(30))/36;
W(1) = (18-sqrt(30))/36;
Q = 0;
for i = 1:4
W(i) = (W(i)*(b-a))/2;
X(i) = ((b-a)*X(i)+(b+a))/2;
Q = Q + W(i) * f(X(i));
end
end
有没有办法使用任何类似矢量的解决方案来代替for 循环?
【问题讨论】:
-
(我对 matlab 的工作方式记忆模糊,但是)您可以制作 W 和 X 向量,然后将它们与所需的值相乘。
-
我的回答有帮助吗?
标签: matlab loops optimization