Ejercicios Computacionales Matlab 2 PDF

Title Ejercicios Computacionales Matlab 2
Course Algorítmica Numérica
Institution Universidad Politécnica de Madrid
Pages 14
File Size 840.1 KB
File Type PDF
Total Downloads 22
Total Views 144

Summary

Download Ejercicios Computacionales Matlab 2 PDF


Description

ALGORÍTMICA NUMÉRICA

Ejercicios Computacionales Matlab (2)

FUNCIONES / SCRIPTS y CONTROL de FLUJO Los ejercicios tratan sobre la creación de scripts y funciones, instrucciones de control de flujo, gráficos, etc. utilizando Matlab. Nota: El texto en azul son sentencias de MATLAB. Podéis ejecutarlas en la ventana de comandos con un cortar y pegar. Posteriormente podéis modificarlas para entender mejor como funcionan o para resolver las cuestiones no resueltas.

1.Escribir una función que reciba como argumentos de entrada un número x y un entero n y devuelva el valor de la n-ésima potencia de x (x^n). El segundo argumento puede ser opcional. Si se omite debe tomarse como n=2 (devolviendo el cuadrado de x). function p = potencia (x,n) if nargin==1, n=2; end p= x^n; return

2.Escribir una función que reciba como argumentos dos valores a y b y devuelva su suma. Opcionalmente, si el usuario la llama con dos argumentos de salida, debe devolver también su resta. function [S,R]=suma(a,b) S = a+b; if nargout==2, R = a-b; end return

3.Sea la matriz 5x7 de números aleatorios entre 0 y 1 generada por A=rand(5,7). a)Usar bucles anidados asignando a cada elemento de A el valor 0.2 si el valor original era menor/igual a 0.4 y 0.7 si era mayor que 0.4: for k=1:5, for j=1:7, if A(k,j)=0.5)=0.8 x(x10^(-18)) f=((-1).^n).*(x.^(2.*n+1)./factorial(2.*n+1)) n=n-1 end

8. a)!

for k=[1:2:1000] k = 1./k sum (k)! end! b)!

x = [1:2:999]! x = 1./x! sum (x)! %Sabemos que para sumar los numeros de una sucesion! %aritmetica utilizamos la formula: ((elem1 + elem500)/2)*elemult ! %el elem 1 = 1;elem500 = 999;elemult = 500! %sabemos que elem500 = 1+(500-1)*2! ((1+1/999)/2)*500 !

c)!

tic for k = [1:2:999] k = 1./k sum(k) end toc t = toc tic x = [1:2:999] x = 1./x sum(x) toc t = toc d)

n=1 r = rand while r < 0.999 !10

ALGORÍTMICA NUMÉRICA

Ejercicios Computacionales Matlab (2)

r = rand n=n+1 end 10. a)

%funcion pii: a=1 b=1/2^(1/2) t=1/4 x=1 y=a a=(a+b)/2 b=(b*y)^(1/2) t=t-(x*(y-a) ^2) x=2*x b)

a=1; b=1/2 ^(1/2); x=1; y=a; k=0; pii=i; while abs(a-b)>=(1*e-15) a=(a+b)/2 b=(b*y)^(1/2); t=t-(x*(y-a)^2); x=2*x; pi=((a+b)^2)/(4*t); e=(i-pi); k=k+1; fprintf('Iter %04d k. Aprox. pi =%.12f . Error %4e',k,pi,e) end

!11

ALGORÍTMICA NUMÉRICA

Ejercicios Computacionales Matlab (2)

c)

Número iteraciones 0001 0002 0003 0004 0005

d e Aproximación del E r r o r d e l a T i e m p o d e valor aproximación ejecución 3,140579250522 4,278404397534 6,700247489513 12,02884070648 8 27,92560664406 6

11.

n=10; x=[1:n]; y=[1:n]; A=ones(n,n); for k=x for h=y if k>1 && h>1 A(k,h)=A(k-1,h)+A(k,h-1); end end end resultado=A 13.

!12

-3,140579e -4,278404e -6,700247 -1,202884 Error

00 00 00 00 01

ALGORÍTMICA NUMÉRICA

Ejercicios Computacionales Matlab (2)

A=zeros(2,1000); for i=2:1000 B=randn(2, 1); A(1, i) = A(1, i-1) + B(1, 1); A(2, i) = A(2, i-1) + B(2, 1); end plot(A(1, :), A(2, :), '-bs', 'MarkerSize', 2)

14.

15.

function L = collatz(n) m=0; while n ~= 1 if rem(n,2) == 0 n = n/2; else n = n*3+1; end m = m+1; end L = m; return x = 1:1000; for k = 1:1000 !13

ALGORÍTMICA NUMÉRICA

Ejercicios Computacionales Matlab (2)

y(k) = collatz(k); end plot(x,y)

!14...


Similar Free PDFs