Write a program in Matlab using Newtons method to solve this
Write a program in Matlab using Newton\'s method to solve this system of equations for x, y, and z...
Solution
f=inline(\'[-10*p(:,1)-10*p(:,2); 28*p(:,1)-p(:,2)-p(:,1).*p(:,3); p(:,1).*p(:,2)-(8*p(:,3))/2]\',\'p\');
tol = 0.4e-6; %error tolerance
MaxIter = 10;
format long
x = sym(\'x\') ;
y = sym(\'y\') ;
z = sym(\'z\') ;
F = f([x,y,z]);
J = jacobian(F);
invJ = inv(J);
s = zeros(MaxIter,3);
s(1,:) = [1 1 1]; % first set of values
dsnorm = inf;
iter = 1;
while dsnorm>tol && iter<MaxIter
ds = -subs(invJ,[x y z],s(iter,:))*f(s(iter,:));
s(iter+1,:) = s(iter,:) + ds\';
dsnorm = norm(ds,inf);
iter = iter+1;
end
s = s(1:iter,:)
%
s(1,:) = [6 6 27]; % second set of values
dsnorm = inf;
iter = 1;
while dsnorm>tol && iter<MaxIter
ds = -subs(invJ,[x y z],s(iter,:))*f(s(iter,:));
s(iter+1,:) = s(iter,:) + ds\';
dsnorm = norm(ds,inf);
iter = iter+1;
end
s = s(1:iter,:)
s(1,:) = [-6 -6 27]; % third set of values
dsnorm = inf;
iter = 1;
while dsnorm>tol && iter<MaxIter
ds = -subs(invJ,[x y z],s(iter,:))*f(s(iter,:));
s(iter+1,:) = s(iter,:) + ds\';
dsnorm = norm(ds,inf);
iter = iter+1;
end
s = s(1:iter,:)
%end of code
