Здравствуйте. Я пытаюсь создать рабочий код на MATLAB для визуальной трехмерной диаграммы
3-D Diagram
3DДиаграмма, созданная в Mathematica
Код, который я запустил для рисования фигуры в Mathematica:
F[x_, k_, r_] := x^4 + k x^2 + r*x
ContourPlot3D[
Evaluate[D[F[x, k, r], x]], {k, -2.5, 2}, {r, -2.2, 3}, {x, -1.4,
1.3}, PlotPoints -> 7, ViewPoint -> {-1.5, 1.5, 1.4}, Axes -> True,
ContourStyle -> {EdgeForm[]},
AxesLabel -> TraditionalForm /@ {k, r, x}] // Timing
В настоящее время я пытаюсь создать аналогичную трехмерную диаграмму, но с MATLAB.В настоящее время у меня есть рабочий код, который создает трехмерное визуальное изображение простой сферической функции, зависящей от 3 переменных, с использованием кода MATLAB
a = 10;
x = linspace(-a,a);
y = linspace(-a,a);
z = linspace(-a,a);
[x,y,z] = meshgrid(x,y,z);
f = x.^2 + y.^2 + z.^2;
k = 100;
p = patch(isosurface(x,y,z,f,k));
isonormals(x,y,z,f,p)
p.FaceColor = 'blue';
p.EdgeColor = 'none';
title(sprintf('Contours of f(x,y,z) = x^2 + y^2 + z^2\nwith f(x,y,z) = k = %d',k));
xlabel('x-axis');
ylabel('y-axis');
zlabel('z-axis');
axis equal;
grid on;
box on;
axis([-10 10 -10 10 -10 10]);
camlight left;
lighting phong;
3-D MATLAB Sphere
Когда я пытаюсь заменить функцию, используемую для генерации сферического кода, той же производной функции, которая использовалась в моем коде Mathematica, программа не запустится.В частности, если я определил f = 4x. ^ 3 + 2 * y x + z, программа не запустится, что, я считаю, связано с тем, что функция зависит от независимого продукта y z.Я хочу знать, как я могу изменить свой код, чтобы получить фигуру, аналогичную той, которую я изначально представлял, или какие-либо предположения о том, какие функции MATLAB мне нужно изучить, чтобы нарисовать трехмерную диаграмму функции, зависящей от 3 переменных.Любая помощь будет оценена, спасибо.