我正在尝试编写如下代码。
syms c, p
yfunc=symfun(0, [c,p])
y=[1 2 3 4 5]
for j=1:5
func=symfun((y(j+1)-c-p*y(j))^2, [c,p]);
yfunc=yfunc+func;
end
我曾期望'yfunc'本身具有五个不同的功能'c'和'p'。但是此代码不起作用。首先,symfun将y(j)识别为符号,而不是向量y中的值。因此,我也尝试像下面那样做,而不是使用symfun。
func=@(c,p)[(y(j+1)-c-p*y(j))^2]
但这行不通。因为在下一行'yfunc = yfunc + func'中,函数句柄中不允许加号。
你有什么主意吗?
谢谢!
这个怎么样,
syms c p
y = [1 2 3 4 5];
x = circshift(y, [1, 1]);
yfunc = symfun(sum((x-c-p*y).^2), [c, p]);
您的for
循环本来会超出范围,y
所以我做了一个circshift
。您可以通过x(1) = ...
在分配行之后说来轻松地更改此设置x
。祝你好运。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句