简洁版
% hanshu=input('请输入函数f(x):','s')
fprintf('请输入差值区间最小值:\n')
xmin=input('')
fprintf('请输入差值区间最大值:\n')
xmax=input('')
fprintf('请输入等分份数:\n')
n = input('')
fprintf('请输入自变量x:\n')
xin=input('')
h=(xmax-xmin)/n
x = []
for t = 1:n+1
x(t)=xmin+h*(t-1)
g(t)=1/(1 + x(t)^2)
% re =x(t)
% f(t) = @(re)hanshu
end
y=0.0
k = 0
L=[];
for k =1:n+1
l=1.0;
for j=1:k-1
l=l*(xin-x(j))/(x(k)-x(j));
end
for j=k+1:n+1
l=l*(xin-x(j))/(x(k)-x(j));
end
L(k)=l;
y=y+L(k)*g(k);
end
文件版
% hanshu=input('请输入函数f(x):','s')
fprintf('请输入差值区间最小值:\n')
xmin=input('');
fprintf('请输入差值区间最大值:\n')
xmax=input('');
% fprintf('请输入等分份数:\n')
% n = input('');
out=zeros(4,5);
L=zeros(21,5,4);
Y=zeros(4,5);
for i=1:5
fprintf('请输入自变量x:\n')
xin=input('');
x = [];
ii=1;
for n =5:5:20
h=(xmax-xmin)/n;
for t = 1:n+1
x(t)=xmin+h*(t-1);
g(t)=1/(1 + x(t)^2);
% g(t)=exp(x(t));
% re =x(t)
% f(t) = @(re)hanshu
end
y=0.0;
k = 0;
for k =1:n+1
l=1.0;
for j=1:k-1
l=l*(xin-x(j))/(x(k)-x(j));
end
for j=k+1:n+1
l=l*(xin-x(j))/(x(k)-x(j));
end
L(k,i,ii)=l;
y=y+L(k,i,ii)*g(k);
Y(ii,i)=y;
end
ii=ii+1;
end
end
fp=fopen('B.txt','a');%'A.txt'为文件名;'a'为打开方式:在打开的文件末端添加数据,若文件不存在则创建。
fprintf(fp,'%f\t%f\t%f\t%f\t%f\t\r\n',Y);%fp为文件句柄,指定要写入数据的文件。注意:%d后有空格。
fclose(fp);%关闭文件。