期待どおりのsphereFN
動作をしていない可能性があります。sum of different powers
この関数に基づいてテストを 実装しようとしているようです:
ただし、次のように実装します。
ph = sum(x.*x, 2);
その機能に似ていません。これを出発点として使用してみてはどうでしょうか。
x = linspace(-1,1,25);
for I=1:size(x,2)
for J=1:size(x,2)
s(I,J) = abs(x(I))^2 + abs(x(J))^3;
end
end
[xx,yy] = meshgrid(linspace(-1,1,25));
surfc(xx,yy,s)
本質的には 2D 問題を記述しているため、関数のこの大雑把な実装で十分です。ネストされたループを(たとえば)for
という関数に入れ、それを呼び出して vector を渡すことができます。sum_of_different_powers_2D
x
編集
for
ネストされた-loops 内のコマンドを次のように置き換えることで、意図したサーフェスにより近い形状を得ることができます。
s(I,J) = abs(x(I))^2 + abs(x(J))^2;
これは次の関数に似ています。
編集 2
n
上で引用した方程式は、問題の次元であることを理解することが重要です。あなたが示したように、これはです2
。
編集 3
この機能を使用することをお勧めします:
function ph = sphereFN(x)
for I=1:size(x,2)
for J=1:size(x,2)
ph(I,J) = abs(x(I))^2 + abs(x(J))^2;
end
end
end