发布于  更新于 

数值分析作业 - 数据拟合与最小二乘

数值分析

Problem 1

1
2
data = {{0, 0}, {1/6, 2}, {1/3, 0}, {1/2, -1}, {2/3, 1}, {5/6, 1}};
FindFit[data, c1 + c2 Cos[2 Pi t] + c3 Sin[2 Pi t], {c1, c2, c3}, t]

拟合结果:

1
{c1 -> 0.5, c2 -> 0.666667, c3 -> 5.59057*10^-17}

直观看来拟合的效果并不好.

Problem 2

法线方程

QR 分解

误差:

Problem 3

20230515095207
20230515095207
1
2
3
4
x = N[Range[2, 4, 1/20]];
y = Table[Sum[x[[i]]^n, {n, 0, 10}], {i, 1, 21}];
a = Table[Table[x[[i]]^n, {n, 0, 10}], {i, 1, 21}];
c1 = LinearSolve[a\[Transpose] . a, a\[Transpose] . y]

Mathematica 给出了结果矩阵条件数大的警告, 结果误差很大:

1
2
3
4
{-254.73969572312623, 599.4456193346913, -509.47962931201255, 
152.30017046791227, 25.032793385407892, -5.826484122391565,
-19.333172789690796, 15.234395579446103, -3.166448346905615,
1.5966670929604954, 0.965552733160666}
1
2
{q, r} = QRDecomposition[a];
c2 = LinearSolve[r, q . y]

Mathematica 给出了结果矩阵条件数大的警告, 但从结果看误差比法线方程小

1
2
3
4
{0.9929717426864622, 1.0281267330856911, 0.9494600502108924, 
1.0536955622829947, 0.962645407944824, 1.0177797956147965,
0.9941361511581496, 1.0013231833104463, 0.9998044906382084,
1.0000170811018925, 0.9999993299217007}