Codigos Matlab
Codigos Matlab
Codigos Matlab
com/
[email protected]
MiguelKarlaIsaac05
Biseccion
function y=myFunction(f,a,b,tol)
%Ingresar una funcion f=@(t) en terminos de la variable t, en
%'Code to call your function' y posterior ejecutar la funcion
x=f(a);
z=f(b);
if sign(x)==sign(z)
disp('Los limites del intervalo deben ser distintos')
return
end
while (b-a)/2>tol
xr=(a+b)/2;
w=f(xr);
if sign(x)==sign(w)
a=xr;
x=w;
else
b=xr;
v=w;
end
end
xr
tol
Falsa Posicion
function y=myFunction(f,a,b,n,tol)
%Ingresar una funcion f=@(t) en terminos de la variable t, en
%'Code to call your function' y posterior ejecutar la funcion
%n es el numero de iteraciones
x=f(a);
z=f(b);
if x*z > 0
disp('No hay una raíz en ese intervalo!')
end
for i = 1:n
xr(i)=b(i)-z(i)*((b(i)-a(i))/(z(i)-x(i)));
w(i)=f(xr(i));
if f(xr(i))*f(a(i)) > 0
a(i+1) = xr(i);
b(i+1) = b(i);
x(i+1)=f(a(i+1));
z(i+1)=f(b(i+1));
elseif f(xr(i))*f(b(i)) > 0
b(i+1) = xr(i);
a(i+1) = a(i);
x(i+1)=f(a(i+1));
z(i+1)=f(b(i+1));
end
xr(i+1)=b(i+1)-z(i+1)*((b(i+1)-a(i+1))/(z(i+1)-x(i+1)));
w(i+1)=f(xr(i+1));
Error(i+1)=abs((xr(i+1)-xr(i))/xr(i+1))*100;
if Error(i+1) < tol
break;
end
end
Iter=i+1;
fprintf('La raiz aproximada es: ');
xr(end)
disp(newline)
disp(['Número de iteraciones: ' num2str(Iter)]);
tol
Metodo Newton
function [xr,er]=myFunction(f,x0,n)
m=0;
t=0.0001;
error=t+1;
while m<n && error>t
xr=x0-(f(x0))/((f(x0+t)-f(x0))/t);
error=abs(xr-x0);
x0=xr;
m=m+1;
if m==n
break;
end
end
er=abs(xr-x0);
end
Secante
function y=myFunction(f,x0,x1,n,tol)
m=0;
error=tol+1;
x=x0;
while error>tol
xr=x1-((x1-x0)*f(x1))/(f(x1)-f(x0));
error=abs(f(xr));
x0=x1;
x1=xr;
m=m+1;
end
xr
error
end
LU
function y=myFunction(A,b)
[n,n]=size(A);
for k=1:n
if abs(A(k,k))<sqrt(eps)
disp(['Pivote muy pequeño encontrado en la columna' ins2str(k)])
end
L(k,k)=1;
for i=k+1:n
L(i,k)=A(i,k)/A(k,k);
for j=k+1:n
A(i,j)=A(i,j)-L(i,k)*A(k,j);
end
end
for j=k:n
U(k,j)=A(k,j);
end
end
L
U
function y=myFunction(A,b)
[n,n]=size(A);
for k=1:n
if abs(A(k,k))<sqrt(eps)
disp(['Pivote muy pequeño encontrado en la columna' ins2str(k)])
end
L(k,k)=1;
for i=k+1:n
L(i,k)=A(i,k)/A(k,k);
for j=k+1:n
A(i,j)=A(i,j)-L(i,k)*A(k,j);
end
end
for j=k:n
U(k,j)=A(k,j);
end
end
L
U
z=inv(L)*b
fprintf('El vector solucion es:')
x=inv(U)*z
function y=myFunction(A,b)
[n n]=size(A);
A=[A';b']';
x=zeros(n,1);
for i=1:n
for k=[1:i-1,i+1:n];
m=-A(k,i)/A(i,i);
A(k,:)=A(k,:)+m*A(i,:)
end
end
x=A(:,n+1)./diag(A)