/ / Jak używać surfowania do kreślenia funkcji sfery w matlab - matlab, funkcja, wykres

Jak korzystać z surfowania do kreślenia funkcji sfery w programie Matlab - Matlab, funkcja, fabuła

Staram się wykreślić funkcję sfery poniżej, ale otrzymuję zły wynik

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Oto kod, którego używam

x1 = [-10:1:10];
x2 = [-10:1:10];
y = zeros(1,21);

for i = 1:21
y(i) = sphere([x1(i) x2(i)]);
end
Y = meshgrid(y);
surf(x1,x2,Y);
colormap hsv;

sphere.m

function [y] = sphere(x)
d = length(x);
sum = 0;
for i = 1:d
sum = sum + x(i)^2;
end
y = sum;
end

Odpowiedzi:

0 dla odpowiedzi № 1

Ze względu na kompletność twój kod nie jestdziała, ponieważ oceniasz swoją funkcję tylko na parach (x, x) dla niektórych x w [-10,10], więc nie pokrywasz całej domeny.

x1 = [-10:1:10];
x2 = [-10:1:10];
y = zeros(1,21);

for i = 1:21
for j=1:21
Y(i,j) = sphere([x1(i) x2(j)]);
end
end
surf(x1,x2,Y);
colormap hsv;

lub szybciej (ponieważ zawsze powinieneś unikać niepotrzebnych pętli ze względu na czas obliczeniowy):

x1 = meshgrid([-10:1:10]);
x2 = x1";

Y = x1.^2+x2.^2;

surf(x1,x2,Y)

0 dla odpowiedzi nr 2

sphere(10)

Jest to wbudowana funkcja MatLab.

Proszę ciesz się odpowiedzialnością.

Jeśli chcesz zobaczyć użycie kodu źródłowego: edit sphere lub help sphere kiedy funkcja sfery nie znajduje się na ścieżce.