用matlab写一个可以求最小二乘抛物线函数系数的代码
时间: 2024-02-06 20:11:52 浏览: 67
好的,下面是一个简单的 MATLAB 代码,可以用最小二乘法求解抛物线函数系数:
```matlab
% 输入数据
x = [1, 2, 3, 4, 5];
y = [2.2, 3.7, 6.5, 10.6, 15.0];
% 构造矩阵
n = length(x);
A = [ones(n,1), x', x'.^2];
% 最小二乘法求解
coeff = (A'*A)\(A'*y');
% 输出结果
a = coeff(1);
b = coeff(2);
c = coeff(3);
fprintf('y = %.4f + %.4fx + %.4fx^2\n', a, b, c);
```
注意,这里假设抛物线函数的形式为 $y = a + bx + cx^2$,其中 $a,b,c$ 是待求的系数。代码输入的数据是一组 $(x,y)$ 坐标点,可以根据实际情况进行修改。运行代码后,会输出求解得到的系数 $a,b,c$。
相关问题
用matlab写一个可以求最小二乘抛物线函数系数的代码,不使用函数
好的,下面是一个不使用 MATLAB 函数的代码,可以用最小二乘法求解抛物线函数系数:
```matlab
% 输入数据
x = [1, 2, 3, 4, 5];
y = [2.2, 3.7, 6.5, 10.6, 15.0];
% 构造矩阵
n = length(x);
A = zeros(n, 3);
for i = 1:n
A(i,1) = 1;
A(i,2) = x(i);
A(i,3) = x(i)^2;
end
% 最小二乘法求解
ATA = A' * A;
ATy = A' * y';
coeff = ATA \ ATy;
% 输出结果
a = coeff(1);
b = coeff(2);
c = coeff(3);
fprintf('y = %.4f + %.4fx + %.4fx^2\n', a, b, c);
```
与使用 MATLAB 函数的代码相比,这里使用了一个 for 循环来构造矩阵 $A$。其他部分的实现与前面的代码类似。
用matlab写一个可以求最小二乘抛物线函数系数的代码,不使用函数,最后会给出点和拟合线的图像
好的,下面是一个可以用最小二乘法求解抛物线函数系数,并画出原始数据点和拟合曲线的 MATLAB 代码:
```matlab
% 输入数据
x = [1, 2, 3, 4, 5];
y = [2.2, 3.7, 6.5, 10.6, 15.0];
% 构造矩阵
n = length(x);
A = zeros(n, 3);
for i = 1:n
A(i,1) = 1;
A(i,2) = x(i);
A(i,3) = x(i)^2;
end
% 最小二乘法求解
ATA = A' * A;
ATy = A' * y';
coeff = ATA \ ATy;
% 输出结果
a = coeff(1);
b = coeff(2);
c = coeff(3);
fprintf('y = %.4f + %.4fx + %.4fx^2\n', a, b, c);
% 画图
xx = linspace(min(x), max(x), 1000);
yy = a + b*xx + c*xx.^2;
figure;
plot(x, y, 'o', xx, yy, '-');
xlabel('x');
ylabel('y');
legend('数据点', '拟合曲线');
```
运行代码后,会输出求解得到的系数 $a,b,c$,并画出原始数据点和拟合曲线的图像。图像中的蓝色点表示原始数据点,红色线表示拟合曲线。可以根据实际情况修改输入的数据点和画图的参数。
阅读全文