# Matlab 3 variable function plot

23 views (last 30 days)
Zeynab Mousavikhamene on 7 May 2020
Commented: Ameer Hamza on 10 May 2020
The equation is:
f(X1,X2,X3)=bt1.x1+bt2.X2+bt3.X3+b1
bt1 to bt3 and b1 are all constants.
and I want to plot it in 3D. I tried a couple of functions like:
figure
syms x1 x2 x3
fimplicit3(Beta(1)*x1+Beta(2)*x2+Beta(3)*x3+b(1))
but it retunrs nothing.

Zeynab Mousavikhamene on 7 May 2020
Beta is:
Beta(1)= -294449.131783462
Beta(2)=14.7170998874722
Beta(3)=-0.127560549560172
b(1) is
87293272725.0805
f=@(x1,x2,x3) Beta(1).*x1+Beta(2).*x2+Beta(3).*x3+b(1);
fimplicit3(f)
Tommy on 8 May 2020
I believe nothing shows because there are no solutions within the default interval [-5 5]. But yes, maybe I incorrectly assumed you were trying to plot solutions to f=0.
Zeynab Mousavikhamene on 8 May 2020
You are right I am plotting solution for f=0. I changed the interval and did not show anything.

Ameer Hamza on 7 May 2020
fimplicit3 is used to plot implicit equations with three variables. What you have is 4D data (3 input variables, 1 output variable). You need to use a 4D visualization function, like slice(), to visualize your function. See this example
Beta(1)= -294449.131783462;
Beta(2)=14.7170998874722;
Beta(3)=-0.127560549560172;
b(1) = 87293272725.0805;
f=@(x1,x2,x3) Beta(1).*x1+Beta(2).*x2+Beta(3).*x3+b(1);
[X1,X2,X3] = meshgrid(linspace(-1,1));
V = f(X1,X2,X3);
slice(X1, X2, X3, V, [-0.5 0.5], 0.3, 0)
colorbar Show 1 older comment
Ameer Hamza on 8 May 2020
If you want to solve it for f=0, then your equation is linear, and you can write an expression of x3 in terms of x1 and x2 using a symbolic toolbox and then use it to plot a surface. For example
Beta(1)= -294449.131783462;
Beta(2)=14.7170998874722;
Beta(3)=-0.127560549560172;
b(1) = 87293272725.0805;
syms x1 x2 x3
f = Beta(1).*x1+Beta(2).*x2+Beta(3).*x3+b(1);
x3_sol = solve(f, x3);
x3_sol_f = matlabFunction(x3_sol, 'Vars', {x1 x2});
[X1, X2] = meshgrid(-5:0.2:5);
X3 = x3_sol_f(X1, X2);
surf(X1, X2, X3); Zeynab Mousavikhamene on 10 May 2020
when I use zlime even in the surf case, the plot show nothing.
Ameer Hamza on 10 May 2020
I haven't used zlim in my code in the comment. Have you tried running that code?

Tommy on 8 May 2020
You can pick any interval. Your plot will only show something if solutions to f=0 lie within the interval. [0, 0, -b1/Beta(3)] is a clear solution. -b1/Beta(3) is on the order of 1e11, so how about this:
Beta(1)= -294449.131783462;
Beta(2)=14.7170998874722;
Beta(3)=-0.127560549560172;
b(1)=87293272725.0805;
f=@(x1,x2,x3) Beta(1).*x1+Beta(2).*x2+Beta(3).*x3+b(1);
fimplicit3(f, [-5 5 -5 5 1e10 1e12]) 