hey! i am a newbee. i need to make a 3D plot . requirments are :plot y as a function of (x and t), and also plot v as a function of (x and t) . the code is given below. thanks in advance

1 view (last 30 days)
Answer is supposed to look like above. but it's coming different.
close all;
clear all;
clc;
%% m
x = (0:(1/60):1); % intial data as given by problem
m = length(x);
t = zeros(1,m);
t = (0:(1/60):0.5);
t(1, 32:61) = 0;
y = 40*sin(pi*x); % function vector
theta = [1; 0.2;0.8]; %initial theta
aplha = 0.1;
lambda = 2;
X = ones(m,3);
X(:,2) = x;
X(:,3) = t;
h_theta = X*theta;
h_theta = h_theta';
% error
J = 0;
for i = 1:m
J = J + (h_theta(i)-y(i))^2;
end
J = J/(2*m) ; % error using initial theta
Reg = lambda/(2*m) * sum(theta(2:3,1));
J = J + Reg;
v = pinv(X'*X)*X'*y'; % calculated perms
x1 = (0:0.25:1);
t1 = (0:0.1:0.4);
for i = 1:length(x1)
pol(i) = v(1) + v(2)*x1(i) + v(3)*t1(i);
end
%% 3D Plot
figure()
plot3(x1,t1,pol,'-r')
pol;
%% Mesh plot 3D surface
[X,Y] = meshgrid(x1,t1);
pol = v(1) + v(2).*X + v(3).*Y;
figure()
mesh(X,Y,pol)
figure()
surf(X,Y,pol)

Answers (0)

Categories

Find more on Graphics in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!