You are on page 1of 14

Instituto Politcnico Nacional.

Unidad Profesional Interdisciplinaria Campus Guanajuato.


Anlisis Numrico.
Tarea 1.
Ejercicio 1.

Cdigo 1.
clear
clc
//La solucin del sistema esta dada por la ec. x=inv(A)*B
//Donde A es nuestra matriz compuesta por nuestros coeficientes y
//B es nuestro vector columna.
A=[1 , 1 ,-%pi/4;1 ,2 ,-2*atan(2);1 ,3 , -3*atan(3)]
//Ahora nombramos B que viene siendo a que estan igualadas nuestras ecuaciones,
//osea el vector columna.
B=[%pi/4;atan(2);atan(3)]
//Por ultimo resolvemos nuestro sistema de ecuaciones con la formula dada
//anteriormente.
//IMPORTANTE pueden sacar la inversa de la matriz (A) para comprobar
//que nuestro sistema tiene solucin.
k=inv(A)*B
//Una vez obtenidos los coeficientes "a","b" y "c", construimos nuestra funcin.
function z=f(x)
z=atan(x) // Nuestra funcin atan(x)
endfunction
function v=g(x)
v=(((-0.6498337)+2.7942446*x))/(1+1.7303487*x)//Nuestra funcin con nuestros
//coeficientes encontrados
endfunction
t=0:0.1:4;//El intervalo que deseamos que se grafiquen , con marca de paso de 0.1
plot(t,f);//Grafica de nuestra funcin atan(x)
plot(t,g);//Grafica de nuestra funcin v=g(x)
t=[1 2 3]
v=[f(1) f(2) f(3)]
w=[g(1) g(2) g(3)]
plot(t,v,'*r');
plot(t,w,'*r');
xgrid()
//De esta forma obtenemos la solucin de x al igual g(x)=f(x)
deff('[y]=f(x)','y=atan(x) - (((-0.6498337)+2.7942446*x))/(1+1.7303487*x)');
deff('[y]=df(x)', 'y=1/(x^2 +1)-((1.3088-2.22045*10^(-16))/(x+0.577918)^2)');
fsolve(0.5,f,df)

Ejercicio 2.

Cdigo 2.
clear
clc
//Vamos a calcular el minimo de la funcin.
//Para este ejercicio utilizamos el comando fminsearch.
//Declaramos nuestra funciin
function y=f(x)
y= 100*(x(1)^2-x(2))^2 + (1-x(1))^2+90*(x(3)^2-x(4))^2+(1+x(3))^2+10*(x(2)-1)^2+(x(4)-1)^2+19.8*(x(2)1)*(x(4)-1)//Escribimos nuestra funcin , usando el "x computacional" osea x(1)=x
//x(2)=y , x(3)=z , x(4)=w
endfunction
[xmin] = fminsearch (f,[0;0;0;0])//Proporcionamos una variable([xmin]) para nombrar a fminsearch
//dentro de fminsearch se llama a nuestra funcin y a los puntos en que deseamos buscar el min.

Ejercicio 3.

a)
b)

!"#$%&'( =

+ ()

()(21 2 + ())

c)

Cdigo 3.

clear
clc
//Usamos la funcin optim para estimar el maximo de nuestra funcin
//Construimos nuestra funcin
function [f, g, ind]=h(x, ind)
f=-[21*x(1)*sin(x(2))-2*x(2)^2*sin(x(2))+x(1)^2*sin(x(2))*cos(x(2))];
g=-[x(1)*cos(2*x(2))+sin(x(2))*(2*x(1)*cos(x(2))-4*x(1)+21);x(1)*cos(x(2))*(x(1)*cos(x(2))-2*x(1)+21)x(1)^2*sin(x(2))^2];
//Utilizmaos el signo menos para encontrar el mximo
endfunction
x0=[3,1.5];//indicamos los puntos
[f,xopt]=optim(h,x0)//Usamos la funcin optin

d) 317.8
Ejercicio 4.

Sustituyendo valores y haciendo un poco de algebra, nuestra funcin es la siguiente.


4053333.3
= 6 10!! ! +
!
A partir de esta funcin calculamos el mnimo.
Respuestas 509.81812 y 3118.9742 respectivamente.

Cdigo 4.
clear
clc
//Creamos nuesta funcin
function [d, g, ind]=f(x, ind)
d=6*10^(-3)*x(1)^2+1/(x(1))^2*(405333333.3);//ponemos nuestra funcin original
g=[(2*6*10^(-3))*x(1)-(2/(x(1))^3)*(405333333.3)];//En esta parte va la derivada de la funcin principal
endfunction
x0=[1];
[d,xopt]=optim(f,x0)//Utilizamos el comando optim para minimizar
//Acontinuacin se mostraran las graficas cuando se varia el peso
function z=f(x)
z=6*10^(-3)*x^2+1/(x)^2*(228000000);
endfunction
function k=p(x)
k=6*10^(-3)*x^2+1/(x)^2*(310333333.3);
endfunction
function v=h(x)
v=6*10^(-3)*x^2+1/(x)^2*(513000000);
endfunction
function j=e(x)
j=6*10^(-3)*x^2+1/(x)^2*(633333333.3);
endfunction
function a=w(x)
a=6*10^(-3)*x^2+1/(x)^2*(405333333.3);
endfunction
t=0.5:0.01:4;//Rango donde se desea graficar
plot(t,f)//Las
plot(t,p)
plot(t,h)
plot(t,e)
plot(t,w)

Ilustracin 1 Variacin del peso

Ejercicio 5.


Cdigo 5
clc
clear
//Para este problema solo seguimos las instrucciones del problema ya que venia semiresuelto
function z=f(x, y)
z=3*exp(-(x-1)^2-(y-2)^2)-2*exp(-(x-2)^2-(y-1)^2)
endfunction
z=feval(-2:0.2:4,-2:0.2:4,f);
plot3d(-2:0.2:4,-2:0.2:4,z);
function z=grad(x, y)
z=[-6*(x-1)*exp(-(x-1)^2-(y-2)^2)+4*(x-2)*exp(-(x-2)^2-(y-1)^2) -6*(y-2)*exp(-(x-1)^2-(y-2)^2)+4*(y1)*exp(-(x-2)^2-(y-1)^2 )]
endfunction
gradf1=grad(0,1)
gradf2=grad(2.5,-1.5)
contour(-2:0.2:4,-2:0.2:4,f,14);
xi = [0 2.5]
yi = [1 -0.5]
xf = xi+[gradf1(1) gradf2(1)]
yf = yi+[gradf1(2) gradf2(2)]
xarrows([xi;xf],[yi;yf],3,[5 6])

Ilustracin 2 Grafica de curvas de nivel del cdigo 5



Ejercicio 6.


Cdigo 6.
clear
clc
//DEfinimos la funcin que nos dan en el problema
//la escribimos con el "x computacional"
function y=f(x)
y=[5*x(1);4*x(1)^2-2*sin(x(2)*x(3));x(2)*x(3)]
endfunction
w=numderivative(f,[1;2;3])//Una vez escrita usamos el comando "numderivative"
//llamando a la funcin "f" y dando valores

Ilustracin 3 Matriz jacobiana

Ejercicio 7.

Cdigo 7.
clear
clc
//Para usar la funcin "derivat" , necesitamos crear nuestro polinomio,
//para esto usamosla funcin "poly"
p=poly([5 -1 2 -3], 'x' , 'coeff')//indicamos la variabla a usar e indicamos los coeficientes
derivat(p)//Apliamos la funcin "derivat" e indicamos lo que queremos derivar , en este caso p
horner(derivat(p),-3) //Evaluamos la derivada en x=-3
//Ahora con derivative
//Creamos el polinomio
function y=f(x)
y=-3*x^3+2*x^2+-x+5
endfunction
p=derivative(f,-3)//Aplicamos derivative llamadno a la funcin ya antes declarada y evaluando en
//x=-3
simp(p)

La derivaba evaluada en x=-3 , es igual a 94.


Ejercicio 8.

Cdigo 8.
clear
clc
//En el problema nos piden sacar la segunda derivada de 4 funciones a nuestra eleccin.
//Para este caso utilizaremos el comando [df,ddf]=numderivative(f,x0), esta sugerencia de uso
//no los proporcion el mismo ejercicio.
//Declaramos las 4 funciones.
function y=f(x)
y=3*x^4+5*x^2+sin(x)+6//Primera funcin
endfunction
function h=g(x)
h=32*cos(x)+tan(x)*x^2 + 6*x//Segunda funcin
endfunction
function u=r(x)
u=tan(3*x)+cos(4*x)+6*x^2//Tercera funcin
endfunction
function j=b(x)
j=atan(x)+4*x^2 + 6//Cuarta funcin
endfunction
//Utilizamos el comando que nos proporcionaron en el ejercicio , una vez puesto indicamos en que
//punto deseamos que se evalue.
[df,ddf]=numderivative(f,4)
[df,ddf]=numderivative(g,5)
[df,ddf]=numderivative(r,0)
[df,ddf]=numderivative(b,7)

Los resultados son : 586.75681 , 807.34636, - 1867.9462 , 313.57747 ,-3.9999987,


3, 7.9944 ,56.02 respectivamente.
Ejercicio 9.

Cdigo 9.
clear
clc
//Resolveremos un sistema de ecuaciones
//Como podemos observar son de pimer orden y no las dan despejadas.
//empzaremos declarando a nuestra funcin
function [dx]=f(t, x)
dx=[x(1)-x(2)+2*t-t^2-t^3;x(1)+x(2)-4*t^2+t^3]
endfunction
t0=0;//Las condiciones de t
x0=[1;0];//Las condiciones de x
t=0:0.1:6;//La grafica de 0 a 6 con marco de paso de 0.1
x=ode(x0,t0,t,f)//Solucin de la ec diferencial con los valores iniciales y de mov de la grfic
plot(t,x(1,:),"*");//La grafica de nuestro resultado
//Ahora necesitamos hacer una comparacin con su solucin analtica.
//Empezamos haciendo la declaracin para la primer funcin llamada x(t)
function e=x(t)
e=%e^t*cos(t)+t^2
endfunction
//Hacemos la declaracin de la segunda funcin llamada y(t)
function s=y(t)
s=%e^t*sin(t)-t^3
endfunction
t=0:0.1:6;//indicamos como se quiere mover t
plot(t,x);//Graficamos a la funcion x(t)
plot(t,y);//Graficamos a la funcin y(t)

Ilustracin 4 Como se puede ver , una de nuestras funciones coincide con las respuestas analticas.

Ejercicio 10.

Cdigo 10.
clear
clc
//Resolucin de una ecuacin diferencial de segundo orden
//Realizamos un cambio de variable para simplificar el orden de nuestra ecuacin y de esa forma
//poderla meterla en Scilab
//Declaramos nuestra funcin
function dy=f(t, x)
dy=[x(2);-3*(cos(t))^2+2]
endfunction
t0=0;//Las condiciones de t
x0=[0;0];//Las condiciones de x
t=0:0.1:6;//La grafica de 0 a 6 con marco de paso de 0.1
x=ode(x0,t0,t,f);//Solucin de la ec diferencial con los valores iniciales y de mov de la grfic
plot(t,x(1,:),"*");//La grafica de nuestro resultado

Ilustracin 5 Grafica de nuestra solucin

Ejercicio 11


Cdigo 11
//Resolvemos la ecuacin diferencial
//Realizamos un cambio de variable
function [y]=dif(t, y)
y=[y(2);y(3);2*y(2)+log(y(3))+cos(y(1))]
endfunction
y=ode([1;-3;5],0,t,dif);//Indcamos la solucin de nuestra ec diferencial
t=0:0.1:10;//Indicamos en que rango la grafique
plot(t,y(1,:));
plot(t,y);

Ilustracin 6 Grafica de nuestra solucin.

Ejercicio 12

Cdigo 12
clc
clear
//definimos la funcin con el comando poly, de esa forma creamos nuestro polinomio
p=poly([0 -840 -599 -77 55 22 3 1/7],'x','c')
derivat(p)//Lo derivamos y obetenemos de nuevo otra funcin la cual repetimos nuestro procedimiento anterior
y=poly([-840 -1198 -231 220 110 18 1],'x','c')
roots(y)//Una vez creado nuestro polinomio le sacamos sus raices o sus soluciones
g=derivat(derivat(p))// como se puede analizar sacamos la derivada de la derivada
horner(g,-7)//Graficamos los puntos para obener los puntos crticos
horner(g,-2)
horner(g,-5)
horner(g,-4)
horner(g,-3)
horner(g,-1)
function y=f(x)
y=-840*x-599*x^2-77*x^3+55*x^4+22*x^5+3*x^6+0.142871*x^7
endfunction
x=0:0.1:15;//DE esta forma graficamos
plot(x,f)

Ilustracin 7 No se pudo encontrar mnimos en este rango

Ejercicio 13.

Cdigo 13.
clear
clc
//Ponemos los datos obetenidos para el tiempo y velocidad
t=[0 1.5 2 3 4.5 5 6.5 7 8.5 10];
v=[0 4 12 21 32 46 53 58 60 63];
i=[1 4 6 8 9];//en donde queremos que interpolemos esos datos
interpln([t;v],i)//Usamos la funcin "interpln"
function [y]=lineal(x)//Declaramos nuestra funcin
t=[0 1.5 2 3 4.5 5 6.5 7 8.5 10]
v=[0 4 12 21 32 46 53 58 60 63]
y=interpln([t;v],x)
endfunction
x=1:0.01:8;//Rango donde queremos graficar
plot(x,lineal)
plot(t,v,'*r')
I=intg(0,10,lineal)

Ilustracin 8 Interpolacin de nuestros datos.

Ejercicio 14.

Cdigo 14.

//Para este problema ya nos dan el codigo solo es de observarlo y analizarlo


// El cdigo queda de la siguiente forma
clear
clc
t=0:0.1:15;
comet3d(sin(t),sin(2*t),sin(%pi*t))

Ilustracin 9 Movimiento del insecto

You might also like