Solicite ayuda a expertos y use LabVIEW para calcular el valor de e. Hay tres métodos, lenguaje c, lenguaje G y programación mixta, y luego vea qué cálculo es el más rápido.
(1) programa polinómico de interpolación de Lagrange de n nodos
función yy=lagrange(x1,y1,xx)
%Este programa es la interpolación de Lagrange1, donde x1, y1
% es el nodo de interpolación y el valor de la función en el nodo, y la salida es el valor de la función del punto de interpolación xx.
%xx puede ser un vector.
syms x
n=longitud(x1);
para i=1:n
t=x1;t(i )=[];L(i)=prod((x-t)./(x1(i)-t));% El vector L se utiliza para almacenar la función de base de interpolación
end
u=sum(L.*y1);
p=simplify(u) % p es la función de interpolación de Lagrange simplificada (cadena)
yy=subs(p , x,xx);
clf
plot(x1,y1,'ro',xx,yy,'*')
==== = ===
Comandos y resultados de la ventana de comandos
formato largo g
>> lagrange([11 12],[0.190809 0.207912],11.5)< / p>
p =
(616200515415341*x)/36028797018963968 + 96413060822745/36028797018963968
ans =
0.1993605
> > Lagrange ([11 12 13], [0.190809 0.207912 0.224951], 11.5)
- (1152921504607*x^2)/36028797018963968 + (321358855010651*** X ) // 18014398509481984 -5577257785379/36028797018963968
ANS =
0,1993685
> pi/180)
ANS = 0,19936793333 4417197
(2)
función f = Newton(x,y,x0)
%Este programa es la interpolación de Newton, donde x,y
% es el nodo de interpolación y el valor de la función en el nodo, y la salida es el valor de la función del punto de interpolación x0.
%x0 puede ser un vector.
syms t;
if(longitud(x) == longitud(y))
n = longitud(x);
c(1:n) = 0.0;
else
disp('¡Las dimensiones de x e y no son iguales!');
return;
fin
f = y(1);
y1 = 0;
l = 1;
para(i=1:n-1)
para(j=i+1:n)
y1(j) = (y(j)-y(i) ) /(x(j)-x(i));
fin
c(i) = y1(i+1); l *(t-x(i));
f = f + c(i)*l;
simplificar(f)
y = y1;
p>if(i==n-1)
if(nargin == 3)
f = subs(f,'t',x0) ; p>
else
f = Collect(f); %Ampliar el polinomio de interpolación
f = vpa(f, 6);
fin
fin
fin
==========
fn=Newton([11 12] ,[0.190809 0.207912],11.5)
ans =
(616200515415341*t)/36028797018963968 + 96413060822745/36028797018963968
fn =
0.1993 605
>> fn=Newton([11 12 13],[0.190809 0.207912 0.224951],11.5)
ans =
(616200515415341*t )/36028797018963968 + 96413060822745/36028797018963968
ans =
- (1152921504607*t^2)/36028797018963968 + (321358855010651*t )/18014398509481984 - 55772577785379/36028797018963968
fn =
0.1993685