2744557306 发表于 2023-12-31 17:09

数据拟合

这段代码通过一次函数对给定的数据进行拟和,并绘制原始数据与拟和曲线的图像。下面是对代码的解释:
x = 1:8;
y = ;
y1 = log(y);
n = 1; % 表示用一次函数拟和
m = length(x);
A = zeros(m, n+1);

% 构建矩阵 A
for i = 1:n+1
    A(:,i) = x.^(i-1)';
end

% 计算矩阵 B 和向量 C
B = A' * A;
C = A' * y1';

% 求解参数向量 re
re = B \ C;

% 计算拟和曲线
a = exp(re(1));
b = re(2);
Y = a * exp(b * x);

% 计算拟合误差
err = norm(Y - y, 2);

% 绘图
plot(x, y, 'r+', x, Y, 'g');
xlabel('x');
ylabel('y');
legend('原始数据', '拟和曲线');

% 输出拟合参数和拟合误差
disp('拟合参数:');
disp(['a = ', num2str(a)]);
disp(['b = ', num2str(b)]);
disp(['拟合误差 (L2 范数): ', num2str(err)]);

这段代码使用一次函数 (Y = a \cdot e^{b \cdot x}) 对给定数据进行拟和。通过最小二乘法,计算了参数 (a) 和 (b) 的值,然后计算拟和曲线 (Y)。最后,绘制了原始数据和拟和曲线的图像,并输出了拟合参数和拟合误差。


页: [1]
查看完整版本: 数据拟合