Matlab - Serie fibonacci

   
Vista:

Serie fibonacci

Publicado por caarlos (2 intervenciones) el 29/08/2013 06:50:45
Holaa qeria saber si me podian ayudar a realizar un programa en matlab donde cree la serie fibonacci y me diga cuales son los primeros 5 numeros impares y primos porfas ayuda urgente, tengo esto de la serie fibonacci pero no se como para qee me de esos 5 primeros numeros

fprintf ('Serie Fibonacci:\n')
f = [1 1]; i = 1;
while f(i) + f(i+1) < 100
f(i+2) = f(i) + f(i+1);
i = i + 1;
end
fprintf('%g ',f)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge

Serie fibonacci

Publicado por Jorge (212 intervenciones) el 29/08/2013 08:48:53
Hola Carlos...

Te dejo una forma de hacerlo, verificalo...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
clear;clc;
fprintf ('Serie Fibonacci:\n')
f =[1 1]; i = 1;
while f(i) + f(i+1) < 100
f(i+2) = f(i) + f(i+1);
i = i + 1;
end
disp(f);
%% Primeros cinco impares y primos
n=1;m=1;
for k=1:length(f)
    a=f(k);
    if rem(a,2)==1
        if n>5,break,end;
        I(n)=a;
        n=n+1;
    end
end
for j=1:length(f);
    b=f(j);
    if isprime(b)==1
        P(m)=b;
        m=m+1;
        if m>5,break,end;
    end
end
disp('Primeros 5 números impares');
disp(I);
disp('Primeros 5 números primos');
disp(P);


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

Serie fibonacci

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 29/08/2013 14:45:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clear
fprintf ('Serie Fibonacci:\n')
f =[1 1]; i = 1;
P=[]; impar=[];
while length(P)<5
    f(i+2) = f(i) + f(i+1);
    if isprime(f(i))==1
        P=[P f(i)];
    end
 
    if rem(f(i),2)==1 && length(impar)<5
        impar=[impar f(i)];
    end
i = i + 1;
end
disp(f);
%% Primeros cinco impares y primos
disp('Primeros 5 números impares');
disp(impar);
disp('Primeros 5 números primos');
disp(P);




1
2
3
4
5
6
7
8
9
>> fibonacci1
Serie Fibonacci:
     1     1     2     3     5     8    13    21    34    55    89   144   233
 
Primeros 5 números impares
     1     1     3     5    13
 
Primeros 5 números primos
     2     3     5    13    89


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Serie fibonacci

Publicado por carlos (2 intervenciones) el 30/08/2013 06:33:19
Muchas graciias, son de gran ayudaa ,gracias por su tiempo, si me funcionaron slds :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Serie fibonacci

Publicado por Ignacio Jacque ijacque@alumnos.uai.cl (2 intervenciones) el 12/04/2016 22:08:31
Jose Jeremías Caballero:
me podrias ayudar a hacer este problema?
Genere una funci´on capaz de calcular hasta el n-´esimo decimal el valor de φ (secci´on aurea o golden ratio).
Una t´ecnica para aproximar su valor es usar la serie de Fibonacci: f1 = f2 = 1, fn = fn−1 + fn−2, ∀n ≥ 3.
Tomando estos valores, se sabe que φ = l´ımn→∞fn/fn−1.
. Para encontrar los valores de la serie de Fibonacci, se
le proporciona el archivo fibo.m para que Ud. s´olo se preocupe de aproximar φ.
Hint: Este t´ıpico problema de programaci´on requiere que Ud. calcule el valor del error  = |an − an−1| donde an =
fn/fn−1. Entonces para encontrar la aproximaci´on hasta el n-´esimo decimal Ud. debe satisfacer que  error < 10−n.

aca esta el archivo fibo.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function out = fibo(n)
    if n == 1 || n == 2
        out = 1;
    else if n - floor(n) > 0 || n <= 0
        fprintf('No se puede utilizar un número decimal y/o menor o igual a 0.\n')
    else
        f1 = 1;
        f2 = 1;
        for i = 3:n
            out = f1 + f2;
            f2 = f1;
            f1 = out;
        end
    end
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar