0% encontró este documento útil (0 votos)
189 vistas6 páginas

Ejercicios Matlab

El primer documento presenta un resumen de un programa en Matlab para calcular el centro de masas de un sistema de partículas en 3D tomando como entrada las coordenadas y masas de cada partícula y calculando las sumas y promedios correspondientes. El segundo documento explica un programa que resuelve una ecuación no lineal de forma iterativa usando el método de Newton-Raphson. El tercer documento presenta un programa para calcular el producto escalar y vectorial de dos vectores en 3D, incluyendo la representación gráfica de los vectores y su producto.

Cargado por

Paloma Almodovar
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
189 vistas6 páginas

Ejercicios Matlab

El primer documento presenta un resumen de un programa en Matlab para calcular el centro de masas de un sistema de partículas en 3D tomando como entrada las coordenadas y masas de cada partícula y calculando las sumas y promedios correspondientes. El segundo documento explica un programa que resuelve una ecuación no lineal de forma iterativa usando el método de Newton-Raphson. El tercer documento presenta un programa para calcular el producto escalar y vectorial de dos vectores en 3D, incluyendo la representación gráfica de los vectores y su producto.

Cargado por

Paloma Almodovar
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

1.

Realizar un programa en Matlab que calcule el centro de masas de un sistema de partculas en 3D Inters: Sumatorios y medias
SOLUCION:
% Script para calcular y representar el centro de masas de un % sistema de partculas n = input('Nmero de partculas: '); mt = 0; mx = 0; my = 0; mz = 0; for i=1:n fprintf(1,'Partcula %d\n',i); x (i)= input ('Coordenada x: '); y (i)= input ('Coordenada y: '); z (i)= input ('Coordenada z: '); m (i)= input ('Masa: '); mt = mt + m(i); mx = mx + x(i)*m(i); my = my + y(i)*m(i); mz = mz + z(i)*m(i); end xcm = mx / mt; ycm = my / mt; zcm = mz / mt; % Dibuja la posicin de las partculas y su centro de masas figure(1) clf hold on for i = 1:n plot3 (x(i),y(i),z(i),'bo'); text (x(i)+.1,y(i)+.1,z(i)+.1,num2str(m(i))); end plot3 (xcm,ycm,zcm,'rx'); text (xcm+.1,ycm+.1,zcm+.1,num2str(mt)); grid on hold off

2. Realizar un programa en Matlab que calcule la solucin de una ecuacin de forma iterativa utilizando el mtodo de Newton-Raphson Inters: Uso de funciones y clculos iterativos SOLUCION:
% Script para aplicar Newton-Raphson a mifuncion % Lectura de datos % Tengo que leer la cota de error 'cota', el nmero de iteraciones mximo 'n'

% y el valor inicial 'xi' cota = input ('Cota de error objetivo: '); n = input ('N mximo de iteraciones: '); xi = input ('Valor inicial de la x: '); xanterior = xi; x = xanterior; eanterior = inf; e = eanterior; i = 1; % contador de iteraciones % Voy a dibujar las tangentes mientras calculo figure(1) clf hold on fplot('mifuncion(x)',[-2 2],'b'); grid % Debo realizar un procedimiento iterativo mientras el error sea mayor que la cota % y el nmero de iteracin sea menor que n while (e>cota) & (i<n) y = mifuncion (xanterior); yd = mifuncion_derivada (xanterior); x = xanterior - y/yd; % Para dibujar yant=mifuncion(xanterior); plot ([xanterior x],[yant 0],'r') e = abs (x - xanterior); xanterior = x; eanterior = e; i=i+1; end hold off % Comprobacin de por cual de las dos (tres) condiciones sali if (e<cota) disp ('Se encontr la solucin'); disp ('La solucin hallada es: '); x disp ('La cota de error es: '); e disp ('El nmero de iteraciones utilizado es: '); i disp ('Y el valor de la funcin en dicho punto es: '); mifuncion(x) else disp ('Se super el nmero de iteraciones'); end **function y = mifuncion (x) y = x*x+0.5-exp(-x); ***function y = mifuncion_derivada (x) y = 2*x+exp(-x);

3. Realizar un programa en Matlab que calcule el producto escalar y vectorial de dos vectores en 3D Inters: Manipulacin y operacin con vectores SOLUCION:

% Producto escalar y vectorial de vectores clear u=input('Introduce un vector u de dimensin 3: '); v=input('Introduce el otro vector v: '); disp('La longitud de los vectores es, respectivamente: '); norm(u) norm(v) disp('El producto escalar es: '); u'*v disp('El ngulo entre los vectores en grados es: '); 180/pi*subspace(u,v) disp ('El producto vectorial es: '); p=pvect(u,v) clf % Ahora dibujamos el producto vectorial hold on plot3 ([0 u(1)],[0 u(2)],[0 u(3)],'b'); text (u(1)+.1,u(2)+.1,u(3)+.1,'u'); plot3 ([0 v(1)],[0 v(2)],[0 v(3)],'b'); text (v(1)+.1,v(2)+.1,v(3)+.1,'v'); plot3 ([0 p(1)],[0 p(2)],[0 p(3)],'k'); text (p(1)+.1,p(2)+.1,p(3)+.1,'p'); hold off grid view(3) **% Producto vectorial para vectores de 3D function producto = pvect (u,v) if length(u)~=3 | length(v)~=3 disp('Error en las dimensiones de los vectores'); return else producto(1,1)=u(2)*v(3)-u(3)*v(2); producto(2,1)=u(3)*v(1)-u(1)*v(3); producto(3,1)=u(1)*v(2)-u(2)*v(1); end

4. Realizar un programa en Matlab que resuelva un sistema de ecuaciones lineales para el caso de 3 ecuaciones con 3 incgnitas. Utilizar por una parte las facilidades de matlab (operador \) as como la programacin directa del mtodo de Cramer Inters: Bucles anidados y manipulacin de matrices SOLUCION:
% Script para calcular la solucin de un sistema de ecuaciones % En primer lugar, utilizando las facilidades de Matlab A = input ('Matriz de coeficientes: '); b = input ('Vector de trminos independientes: '); disp ('Solucin') x = A\b % Ahora utilizando la regla de Cramer para matriz de 3 x 3 if det(A)==0 disp ('No es posible obtener la solucin'); else for i=1:3 for j=1:3 for k=1:3 if j==i d(k,j)=b(k,1); else d(k,j)=A(k,j); end end end detd=det(d); xc(i,1)=detd/det(A) end end

5. Realizar un programa que lea 10 nmeros y determine cules y cuntos de ellos son mltiplos de 7. El programa, primero pedir los 10 nmeros, y a continuacin mostrar slo aquellos que son mltiplos de 7 as como cuntos son.
SOLUCION:
% Hacer un programa que lea 10 numeros y determine cuales y cuantos de ellos % son multiplos de 7 for i=1:10 a(i) = input (['Numero ' num2str(i) ' :']); end disp('Multiplos de 7: ');

m=0; for i=1:10 if rem(a(i),7)==0 disp(a(i)) m=m+1; end end if m==0 disp('No hay.'); else disp(['Son en total ' num2str(m)]); end

6. Realizar una funcin recursiva para encontrar el mximo comn divisor (mcd) de dos enteros utilizando la siguiente definicin: mcd(x,y) =

mcd(y,x) si x<y x si y=0 mcd(y,x mod y) en caso contrario SOLUCION:

% % % % % %

Maximo Comun Divisor utilizando funcion recursiva z = mcd (x,y) x,y : numeros enteros z : Maximo Comun Divisor de x e y

function z = mcd (x,y) if (x<y) z = mcd (y,x); elseif y==0 z = x; else z = mcd (y, rem (x,y) ); end

% Evaluacion de un polinomio en puntos dados por el usuario n = input ('Grado del polinomio: '); for j=n:-1:0 fprintf(1,'Coeficiente de x^%d : ',j); coef(n-j+1)=input (''); end while 1 x = input ('Punto a evaluar: '); if x == -999 break; end fprintf(1,'p(%f) = %f\n',x,polyval(coef,x)); end

También podría gustarte