interpolacion polinomica de newton con Matlab

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ก.พ. 2025

ความคิดเห็น • 59

  • @steeven094
    @steeven094 4 ปีที่แล้ว +2

    Mi profesor ha intentado copiar desde este video para la clase que nos debia impartir, pero ni copiar pudo, me ha salvado encontrar el video original, muchisimo mejor!

  • @mariananguameaibarra7648
    @mariananguameaibarra7648 3 ปีที่แล้ว +30

    %Interpolacion de Newton
    function[yi,p,b]= pol_newton(x,y,xi)
    %inicia las variables
    n=length(x);
    b=zeros(n);
    b(:,1)=y(:);
    for j=2:n
    for i=1:n-j+1
    b(i,j)=(b(i+1,j-1)-(b(i,j-1)))/(x(i+j-1)-x(i));
    end
    end
    %datos interpolados
    xt=1;
    yi=b(1,1);
    for j=1:n-1
    xt=xt.*(xi-x(j));
    yi=yi+b(1,j+i)*xt;
    end
    %polinomio
    p=num2str(b(1,1));
    xx=x*-1;
    for j=2:n
    signo='';
    if b(i,j)>=0
    signo2='';
    end
    xt='';
    for i=1:j-1
    if xx(i)>=0
    signo2='+';
    end
    xt=strcat(xt,'*(x',signo2,num2str(xx(i)),')');
    end
    p=strcat(p,signo,num2str(b(1,j)),xt);
    end

  • @jeanpaulromerovelasco6544
    @jeanpaulromerovelasco6544 4 ปีที่แล้ว +18

    %inicio del código
    %interpolación de Newton
    function [yi,p,b]= interpolacionnewton(x,y,xi)
    %iniciamos variables
    n=length(x);
    b=zeros(n);
    b(:,1)= y(:);
    %obtenemos la tabla de diferencia
    for j=2:n
    for i=1:n-j+1
    b(i,j)=(b(i+1,j-1)-b(i,j-1))/(x(i+j-1)-x(i));
    end
    end
    %Calculamos el dato que queremos interpolar
    xt=1;
    yi=b(1,1);
    for j=1:n-1
    xt=xt.*(xi-x(j));
    yi=yi+(b(1,j+i)*xt);
    end
    %Contruimos el polinomio
    p=num2str(b(1,1));
    xx=x*-1;
    for j=2:n
    signo='';
    if b(i,j)>=0
    signo='+';
    end

    xt='';
    for i=1:j-1
    signo2='';
    if xx(i)>=0
    signo2 ='+';
    end

    xt = strcat(xt,'*(x',signo2,num2str(xx(i)),')');
    end

    p= strcat(p,signo,num2str(b(1,j)),xt);
    end

  • @gilantoniogomezgarcia4095
    @gilantoniogomezgarcia4095 3 ปีที่แล้ว

    Muchas, muchas, muchas gracias por este increible video. Lo felicito y le agradezco mucho

  • @bokim2105
    @bokim2105 10 ปีที่แล้ว +1

    Muchas gracias muy buen video ... Saludos desde Costa Rica

  • @karolayfajardo5809
    @karolayfajardo5809 6 ปีที่แล้ว +8

    para que funcione deben ingresar en el command window:
    x=[1 2 4 8];
    y=[5 8 4 2];
    pol_newton(x,y,6)
    Esto para el ejemplo del video ;)

  • @TheFRANCISKELVIN
    @TheFRANCISKELVIN 11 ปีที่แล้ว +1

    MUY BUEN APORTE.. EXCELENTE, me dio un poco de gracia tu error de i+i, PERFECTO TE FELICITO.

  • @lince1408
    @lince1408 11 ปีที่แล้ว

    ya quedo Buena Aporte ... me salvaste la vida Gracias

  • @luisgerardodalguerregarcia1712
    @luisgerardodalguerregarcia1712 5 ปีที่แล้ว

    Buenísimo B-) Me sirvió bastante. Gracias!

  • @inactionrichardalvarezmama7395
    @inactionrichardalvarezmama7395 10 ปีที่แล้ว

    muy bien video, bien explicado. Muchas gracias :D saludos

  • @jcjimenezb
    @jcjimenezb  12 ปีที่แล้ว +1

    Hola Laura, el problema se puede dar en la declaracion de la funcion, revisa por favor la primera linea del programa function [yi,p,b]=pol_newton(x,y,xi), la otra posibilidad del fallo es al momento de llamar la funcion, debe ser pol_newton(x,y,6) x e y deben ser vectores previamente definidos y 6 es el valor que quieres interpolar. La ultima posibilidad de fallo es que el programa se encuentre en una caarpeta que matlab no tiene identificada, selecciona la carpeta como carpeta de trabajo. salu2

    • @CesarChavarriaGood
      @CesarChavarriaGood 7 ปีที่แล้ว

      su video es excelente maestro; para todos aquellos que les marca el errores tan solo les digo que tienes que ser muy suspicaces en el codigo, no lo confien todo y lo echen a la borda.

  • @marioezeta7286
    @marioezeta7286 4 ปีที่แล้ว

    Excelente! Muchas gracias

  • @Santiago-ur3lx
    @Santiago-ur3lx 5 ปีที่แล้ว

    infinitamente agradecido amigo :)

  • @diegolinares6726
    @diegolinares6726 5 ปีที่แล้ว +17

    Les comparto un codigo que me sirvio:
    'Interpolacion de newton'
    clear;clc;
    disp('metodos numericos');
    disp('interpolacion');
    disp('interpolacion');
    n=input('ingrese el grado del polinomio, n=');
    fprintf('Se necesitan %.0f puntos
    ',n+1);
    disp('ingrese los puntos');
    for i=1:n+1
    fprintf('x%.0f=',i-1);
    X(i)=input(' ');
    fprintf('y%.0f=',i-1);
    Y(i)=input(' ');
    end
    DD=zeros(n+1);
    DD(:,1)=Y;
    for k=2:n+1
    for J=k:n+1
    DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)];
    end
    end
    disp('La matriz de diferencias divididas es:');
    disp(DD);
    disp('El polinomio de newton es');
    syms x;
    polnew=DD(1,1);
    P=1;
    for i=1:n
    P=P*(x-X(i));
    polnew=polnew+P*DD(i+1,i+1);
    end
    polnew=expand(polnew);
    pretty(polnew);
    x=input('ingrese el valor de x a interpolar,x=');
    vi=eval(polnew);
    fprintf('el valor interpolado es %.2f
    ',vi);
    hold on;
    ezplot(polnew,[X(1) X(n+1)]);
    plot(x,vi,'r+');

    • @rodrigoolivarespizarro9245
      @rodrigoolivarespizarro9245 4 ปีที่แล้ว

      Muy bueno loco ,mejor que el del mismo video

    • @pivot947
      @pivot947 3 ปีที่แล้ว

      Exceleteee, mil gracias! funciona super bien!

  • @erickson1119
    @erickson1119 11 ปีที่แล้ว

    muy bueno graxias por el aporte

  • @luisleandrolucas4883
    @luisleandrolucas4883 6 ปีที่แล้ว

    Muy buen video todo esta bien :D

  • @jorgeivanjimenezchic
    @jorgeivanjimenezchic 10 ปีที่แล้ว

    excelente video gracias

  • @erickmerida8665
    @erickmerida8665 8 ปีที่แล้ว +3

    que tal amigo @jc jimenez fijate q tu archivo no me corre se queda en
    Error in pol_newton (line 4)
    n=length (n);

  • @leandroeduardomorenodoming2045
    @leandroeduardomorenodoming2045 11 ปีที่แล้ว

    hola , esta muy bueno el video , me pregunto si se podria ampliar la matriz con la que se trabaja ¡¿?.

  • @ingridespinosamarquez2517
    @ingridespinosamarquez2517 4 ปีที่แล้ว

    ¿qué modificaciones debería hacer para interpolar 4 puntos? gracias

  • @osvaldow4584
    @osvaldow4584 3 ปีที่แล้ว

    ¿Me puede dar algún consejo de cómo aprender a hacer eso por favor?
    (recursos bibliográficos de programación con matrices o algo así)

  • @atalafehlandt
    @atalafehlandt 11 ปีที่แล้ว +6

    Como haces para graficar el polinomio?

  • @jonathanperez5599
    @jonathanperez5599 11 ปีที่แล้ว +1

    oie son diferencias finitas o divididas?

  • @giovannipena7713
    @giovannipena7713 11 ปีที่แล้ว

    length(x) es = 8-1 (YA QUE ES EL x4-x1) ó es = 4 ( x0,x1,x2,x3,x4)??? porque tu matriz con el error dijo que era de 4*4 y no ce como tomarla esta. Muy buen aporte Jc

  • @laurabolanosgarcia7007
    @laurabolanosgarcia7007 12 ปีที่แล้ว +2

    buen video
    copie el programa tal cual pero me sale esto
    Undefined function 'pol_newton' for input arguments of type 'double'.
    soy nueva programando en matlab asi que no se porque sera

  • @salvadornoriegar9537
    @salvadornoriegar9537 9 ปีที่แล้ว

    Muy buen vídeo!!!
    Solamente tengo una duda, lo que pasa es que quiero tomar todos los valores de la segunda columna, en lugar de los del primer renglón,pero al intentarlo cambiar no corre el programa.
    Si pudiera darme solución se lo agradecería mucho.

  • @jorgeivanjimenezchic
    @jorgeivanjimenezchic 10 ปีที่แล้ว

    hola: tienes algun metodo de extrapolacion, para matlab, que puedas explicar en video?

  • @erickson1119
    @erickson1119 11 ปีที่แล้ว

    solo una duda, como imprimo mi tabla de variables divididas que pones como b???

  • @aldemarandresgonzalez9380
    @aldemarandresgonzalez9380 9 ปีที่แล้ว

    copio todo tal cual y me aparece error en n=length(x);
    Error using pol_newton (line 5)
    Not enough input argumen

  • @kanalsvjaz
    @kanalsvjaz 2 ปีที่แล้ว

    a partir del un n=5, o de un vector x de 5 datos, aparece un error en el signo del 4to término del polinomio, aparecen simultáneamente +-...., alguien lo puedo corregir?

  • @JoelPerez-gk7so
    @JoelPerez-gk7so 8 ปีที่แล้ว

    como puedo modificar el codigo para que se desarrolle hasta un polinomio x orden

  • @angelwright8327
    @angelwright8327 11 ปีที่แล้ว

    hola disculpa no me quiere agarrar el comando function me dicen que es invalido y que "]" y ")" lo marca erroneo como puedo corregirlo

  • @jebenitez06
    @jebenitez06 10 ปีที่แล้ว +1

    Hola, me puedes enviar el archivo de matlab para este ejemplo.
    Muchas gracias.

  • @andreer3984
    @andreer3984 8 ปีที่แล้ว +4

    por que no colocas el código para copiarlo y pegarlo nomas -_-

    • @erickjkr
      @erickjkr 8 ปีที่แล้ว +12

      pa' que no seas un pinche vago que todo quiere servido

    • @genarocarreon3886
      @genarocarreon3886 8 ปีที่แล้ว +1

      thug life!!!!!! B| jajajajajajaja

    • @andreer3984
      @andreer3984 8 ปีที่แล้ว +4

      :v es lo mas logico

  • @jeanpaulromerovelasco6544
    @jeanpaulromerovelasco6544 4 ปีที่แล้ว

    para graficar?¿

  • @danielparedes2848
    @danielparedes2848 5 ปีที่แล้ว

    no corre el programa me sale esto:
    Undefined function or variable 'pol_newton'.

  • @johnharrison_1984
    @johnharrison_1984 3 ปีที่แล้ว

    Hola me puede cotizar un trabajo??

  • @yosepsotopozo5797
    @yosepsotopozo5797 7 ปีที่แล้ว +2

    Subscript indices must either be real positive integers or logicals.
    Error in pol_newton (line 10)
    b(i,j)=(b(i+1,j-i)-b(i,j-1))/(x(i+j-1)-x(i));
    me sale este error no entiendo todo el código esta muy bien ya lo verifique varias veces ayuda¡!!!!!!!

  • @universidaddummy
    @universidaddummy 4 ปีที่แล้ว

    cuando subas un codigo haz la prueba, no tiene sentido que los que estan aprendiendo de ti, no les corra. Mejora esa parte

  • @jhonatanperez4099
    @jhonatanperez4099 7 ปีที่แล้ว

    me pudieras pasar porfavor el codigo fuente

  • @christophersuarez5882
    @christophersuarez5882 11 ปีที่แล้ว +1

    amigo disculpa me puedes envar tu archivo m si porfa!!!

  • @aldemarandresgonzalez9380
    @aldemarandresgonzalez9380 9 ปีที่แล้ว

    A que se debera ? graxias

    • @cx3rvo
      @cx3rvo 9 ปีที่แล้ว

      +aldemar gonzalez
      el comando el length, colocastes la "h" antes de la t :)

  • @lidertorricoarce5142
    @lidertorricoarce5142 3 ปีที่แล้ว

    lo pasas el codigo porfa

  • @jeanrodrigues6249
    @jeanrodrigues6249 2 ปีที่แล้ว

    Lumix

  • @ThekingGokuNaru
    @ThekingGokuNaru 9 ปีที่แล้ว

    :D (Y)

  • @jesusmanuellagarestalaigua4432
    @jesusmanuellagarestalaigua4432 3 ปีที่แล้ว

    me sale error, así que no sirve :v

  • @adrianesparza7684
    @adrianesparza7684 5 ปีที่แล้ว

    a quien le importa, nomas queremos copiar y pegar, ni que nos de un titulo un polinomio

  • @wilmarnola8844
    @wilmarnola8844 6 ปีที่แล้ว

    No es la respuesta esta mal el codigo el valor que obtienes no pertenece al conjunto de datos