im travaillant sur octave pas sûr si elle s'exécuterait dans matlab, im essayant de faire un polynôme lagrange simple qui tracer les points, la fonction et l'aproximation lagrange, donc j'ai fait ce qui suit,arguments non conformes lagrange polynomial (octave)
clear all
clc
function [y] = lagrange(x, x0, y0)
n = size(x0,1);
y = 0;
for i=1:n
p = 1;
for j=1:n
if j == i % avoiding division by 0
continue;
endif;
p *= (x-x0(j))/(x0(i)-x0(j));
endfor;
y += y0(i) * p;
endfor;
endfunction;
x=[0:0.1:5];
x0=[2;2.75;4];
y0=[1/2;1/2.75;1/4];
y=lagrange(x,x0,y0);
Je vais avoir le problème suivant, « opérateur *: arguments nonconformant (OP1 est 1x41, op2 est 1x41) » qui apparaît uniquement lorsque vous utilisez un vecteur x, si je tente et d'évaluer par exemple lagrange (3 , x0, y0) dans un point précis, la fonction fonctionne correctement et il n'y a pas de problème, le problème est lorsque vous utilisez un plus grand vecteur pour x,
S o ma question est, est-il un moyen que je peux modifier la fonction afin qu'il fonctionne avec un plus grand vecteur x, ou il y a un moyen que je peux tracer la fonction sans utiliser le plus grand vecteur directement dans la fonction?
il serait utile si vous pouviez nous dire sur quelle ligne l'erreur se produit sur. Je crois que le message d'erreur devrait vous le dire. je suppose que cela se produit à la ligne 'p * ='. pour que l'argument non conforme ait un problème avec deux choses ayant la même taille, il faudrait qu'il y ait une multiplication de matrice, qui veut m par n x n par p. –
oh, oui je suis désolé pour cela, et oui, l'erreur était dans la ligne 'p * =' – Zigisfredo