首先调用数据x1,x2,y。然后对调用的数据进行拟合;

clc;
clear;
close all;
% y=A1*exp(x1) + A2*exp(x2) + A0;
disp('请选择需要加载的数据,首先选择需要加载数据的方式');
disp('输入0表示数据较少,采用手动输入方式');
disp('输入1表示数据较多,采用系统加载的输入方式');
select = input('请输入0或者1\n');
if select == 0
disp('第1步:输入降雨量数据(输入格式为:[1 2 3 4 .....])');
x1=input('01:降雨量数据\n');
disp('第2步:输入雨水酸度数据(输入格式为:[1 2 3 4 .....])');
x2=input('02:雨水酸度数据\n');
disp('第3步:输入淋出率数据(输入格式为:[1 2 3 4 .....])');
y=input('03:淋出率数据\n');
end
if select == 1
disp('输入数据的格式为:单引号*.txt单引号');
disp('第1步:输入需要求解公式物质类型的“降雨量”');
x1=input('01:文件名格式为:*.txt\n');
disp('第2步:输入需要求解公式物质类型的“雨水酸度”');
x2=input('02:文件名格式为:*.txt\n');
disp('第3步:输入需要求解公式物质类型的“淋出率”');
y=input('03:文件名格式为:*.txt\n');
%加载数据
load x1.txt
load x2.txt
load y.txt
end
x(1,:) = x1;
x(2,:) = x2;
y = y';
x0=[0,0,0];%值初始化!
%进行数据的拟合
a=lsqcurvefit('fun',x0,x,y);
%获得的参数
a0=a(1)
a1=a(2)
a2=a(3)
% 使用拟合后的参数计算原函数
y2=a0*exp(x(1,:)) + a1*exp(x(2,:)) + a2;
%原函数和拟合计算得到的函数值的对比
figure;
subplot(311);
plot(y,'r-*') ;hold on;
plot(y2,'b-o');hold off;
grid on;
legend('原始的淋出率值','进行拟合以后的淋出率值');
title('原始曲线和拟合以后的曲线对比图');
subplot(312);
plot(y2-y,'k-*');
title('拟合值和初始值的误差曲线');
subplot(313);
x1=0:0.0699:6;
x2=0:0.0469:4;
y2=a0*exp(x1) + a1*exp(x2) + a2;
plot(y2,'k-*');
title('根据拟合函数预测其余函数值');
grid on;

·仿真结果

MATLAB数据拟合_文件名