数值分析作业 - 数据拟合与最小二乘
数值分析
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
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}
|