我正在尝试编写如下代码。
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'中,函数句柄中不允许加号。
你有什么想法吗?
谢谢!
答案 0 :(得分:0)
这个怎么样,
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
轻松更改。祝你好运。