0

matlab では、次のように、k が 1 から 6 の場合、系列の合計 (x^k) / (2*k) を実装しました。

syms x;
syms k real;
symsum(x^k/(2*k), k, 1, 6)

上記の合計には、シンボリック変数 (x) が 1 つしかありません。ここで、Matlab で次の合計を実装したいと思います (alpha と n は定数です)。ご覧のとおり、n の値に応じて、シンボリック変数の数が異なります。たとえば、n=2 の場合、2 つのシンボリック変数 x1 と x2 があります。n=4 の場合、4 つのシンボリック変数 x1、x2、x3、および x4 があります。これを Matlab で実装するにはどうすればよいですか?

ここに画像の説明を入力

4

2 に答える 2

1

次を使用して、シンボリック変数の 1xN ベクトルを作成できます。

A=sym('A',[1 N]);

次に、を使用してi-th 要素にアクセスしA(i)ます。

詳しくはこちらをご覧ください。

合計を書くことに関しては、私は本当に助けることができません。for ループを使用してインデックスを指定するとよいと思います。

S=0;
for i=1:N/2
    S=S+alpha*(x(2*i)-x(2*i-1)^2)+(1-x(2*i-1))^2;
end

しかし、それは答えを単純化するものではありません。しかし、私はより良い方法を知りません。

于 2013-11-04T03:33:03.180 に答える
0

Mupad ソリューションが許容される場合は、試してください

sum(alpha*(x(2*k)-x(2*k-1)^2)+(1-x(2*k-1))^2, k=1..n/2)

もちろん、あなたは述べるべきalphaですn

于 2013-11-04T13:06:50.107 に答える