You are on page 1of 6

SENTECIAS REPETITIVAS

SENTENCIA WHILE
clc % se pone para borrar todo lo que hay en la pantalla
x0=7 % se inicializa la variable; o se le puede pedir un valor al usuario
X0=input('ingrese')
while (x0<20) %se pone la condicion entre parentesis.
x0=x0+1 % se ejecutan las sentencias.
% si se pone con punto y coma(;)no se muestran los resultados
parciales.
end % se finaliza el while
%si se puso el punto y coma (;) se tiene que poner disp(x0)--> para
mostrar el valor de la variable x0.

SENTENCIA FOR
clc % se pone para borrar todo lo que hay en la pantalla
for h=1:5 % en este for el paso es 1 por defecto (punto inicial 1 y final
5).
for k=3:4:38 % en este caso el for tiene un paso que es el 4 aumenta de 4
en 4.
disp([h h^2]) % se muestra u vector con los valores y sus cuadrados.
end % siempre se finaliza el bucle

Ejemplo de factorial de un nmero:


clc
num=input('Ingrese numero : ')
fact=1;
for i=1:num;
fact=fact*i;
end
disp('el factorial es : ')
disp([fact])

GRAFICAR FUNCIONES

PRIMER METODO
clc, clear %se borra todo lo que hay antes en la pantalla.
x=-5:0.01:5; % se crean los valores de x (dominio) con un paso pequeo
para suavizar la grafica
y=3*x.^4+5*x.^2+3*x+7; %se declara la funcion poniendo punto(.)en las
exponenciales para que afecte a c/u.
plot(x,y) %se grafica los puntos (x,y).
grid on % se activa el grillado.
hold on % para que no se borre al graficar otra funcion.
plot(x,zeros(size(x)),'r') % para graficar una segunfa funcion horizontal
color rojo ('r').

SEGUNDO MTODO
clc, clear %se borra todo lo que hay antes en la pantalla.
f='3*x.^4+5*x.^2+3*x+7'; %se declara la funcin poniendo punto(.)en las
exponenciales para que afecte a c/u.
syms x % se declara cual es la variable.
x=-5:0.01:5; % se crean los valores de x dominio con un paso pequeo para
suavizar la grafica
y=eval(f); % las y son la evaluacin de la funcin declarada.
plot(x,y) %se grafica los puntos (x,y).
grid on % se activa el grillado.
hold on % para que no se borre al graficar otra funcin.
plot(x,zeros(size(x)),'r') % para graficar una segunda funcin horizontal
color rojo ('r').

mtodos numrico

METODO DE BISECCIN:
clc,clear % borra todo lo que hay guardado.
fun=input('ingrese funcion : ') ; % se pide al usuario la funcion.
f=inline(fun); % se le asigna a la funcion como cadena en 'f'.
a=input('ingrese el menor valor del intervalo : ');% se pide el extremo
menor del intervalo inicial.
b=input('ingrese el mayor valor del intervalo : '); % se pide el extremo
mayor del intervalo inicial.
tol=input('ingrese la tolerancia : ');% se pide la tolerancia.
n=0;% se inicializa el contador de iteraciones.
MEP=(b-a)/2; % MEP(mximo error posible del metodo)
while(MEP>tol) % se inicia el bucle while con la condicion.
c=(a+b)/2; % es lo que ejecutara mientras se cumpla la condicion.
disp([n,a,b,c]) % para cada iteracion le pedimos que nos imprima el
numero de iteracion,a,b,y la raiz parcial c.
if(f(a)*f(c)<0) %se introduce la condicion para elegir intervalos
automaticamente.
b=c; % si el producto es negativo tiene raz por lo tanto el
nuevo intervalo seria <a,c>
else a=c; % si el producto no es negativo la raz esta en el
nuevo intervalo seria <c,b>
end % se finaliza el if
MEP=(b-a)/2;
n=n+1; % se incrementa en uno la iteracion cada vez que termina un
ciclo el bucle while.
end % se termina el ciclo while
disp('la raz encontrada es : ') % se muestra este mensaje antes de la
raiz final.
disp(c) %se muestra la raiz final.

METODO DE NEWTON RAPHSON:


%newton raphson
clc,clear % limpia todo en la pantalla
cf=input('ingrese funcion : '); % se pide al usuario la funcion;
syms x %se pone a x como variable para que pueda calcular la derivada.
f=inline(cf); % se linealiza la funcion ingresada.
ddf=diff(cf,x); %se calcula la derivada respecto a x;
df=inline(ddf); % se linealiza la derivada para poder usarla en las
iteraciones."df(x)"
tol=input('ingrese la tolerancia deseada : '); % se pide al usuario la
tolerancia ;
error=50;% se establece un error grande para ingresar al bucle wile.
x=input('ingrese el valor inicial : '); % se pide al usuario el valor
inicial.
n=0; % se inicializa el contador de iteraciones n = 0.

while (error>tol) % la condicion del bucle es esa.


x=x-f(x)/df(x); % se obtienen "x" en cada iteracion.
disp([n,x,error]); % se muestra en la pantalla: "el numero de
iteracion(n),raiz aproximada (x) y error para cada iteracion."
n=n+1; %se incrementa en uno el contador de iteraciones.
error = abs(f(x));%se calcula el error para cada iteracion.
end % se finaliza el bucle while
disp('la raiz aproximada es : '); % se muestra este mensaje
disp(x); % se muestra la raiz aproximada final .

ejemplo:

INTEGRACION SIMPSON 1/3:


%INTEGRACION SIMPSON 1/3.
clc,clear % limpia todo en la pantalla
cf=input('ingrese funcion : '); % se pide al usuario la funcion;
f=inline(cf);
a=input('ingrese a : ');
b=input('ingrese b : ');
n=input('numero de intervalos ? : ');
h=(a+b)/n;
c=a+h;
k=a+2*h;
s=0;
r=0;
while (c<b) % la condicion del bucle es esa.
s=s+f(c);
c=c+2*h;
end % se finaliza el bucle while
while (k<b)
r=r+f(k);
k=k+2*h;
end
x= h/3*(f(a)+4*s+2*r+f(b));
disp('la integral aproximada es : '); % se muestra este mensaje
disp(x); % se muestra la raiz aproximada final .

You might also like