Ohjelmointi ja numeeriset menetelmät, kevät 2006

Harjoitus 5

Ratkaisut palautettava viimeistään luennolla 1.3.

1.Johda sinille muotoa (a+bx+cx2)/(1+dx+ex2) oleva Pad\'en approksimaatio.

2. Oletetaan, että taulukossa ra on planeetan rektaskensio vuoden jokaiselle päivälle klo 0 UTC. Tee aliohjelma, joka laskee lineaarisella interpoloinnilla rektaskension mielivaltaiselle kellonajalle. Aliohjelma saa parametrinaan ko.\ päivää vastaavan taulukon indeksin ja ajan tunteina. Testaa, että aliohjelma toimii myös, kun rektaskensio muuttuu 24 -> 0 tai 0 -> 24. (Testiaineistona voit käyttää lopussa olevaa taulukkoa, jossa on Venuksen rektaskensiot ja deklinaatiot vuodelle 2001.)

3.Määrittele vektorien käsittelyyn sopiva tietotyyppi vector. Kirjoita aliohjelmat, jotka laskevat skalaaritulon, vektoritulon, skalaarikolmitulon ja vektorikolmitulon.

4. Tee ohjelma, joka sovittaa suoran f(x)=a+bx annettuun aineistoon (xi, yi), poistaa pisteet, joiden etäisyys suorasta on suurempi kuin 3R, missä

R = \sqrt( (1/n) \sum (yi - f(xi))2 ),

ja sovittaa uuden suoran puhdistettuun aineistoon.



 2000 12 28 21.69681 -15.6543
 2000 12 29 21.76857 -15.2361
 2000 12 30 21.83978 -14.8125
 2000 12 31 21.91044 -14.3836
 2001  1  1 21.98054 -13.9498
 2001  1  2 22.05009 -13.5113
 2001  1  3 22.11908 -13.0683
 2001  1  4 22.18750 -12.6210
 2001  1  5 22.25537 -12.1697
 2001  1  6 22.32267 -11.7146
 2001  1  7 22.38940 -11.2559
 2001  1  8 22.45556 -10.7939
 2001  1  9 22.52115 -10.3289
 2001  1 10 22.58617  -9.8609
 2001  1 11 22.65062  -9.3904
 2001  1 12 22.71449  -8.9174
 2001  1 13 22.77779  -8.4423
 2001  1 14 22.84051  -7.9652
 2001  1 15 22.90265  -7.4863
 2001  1 16 22.96422  -7.0059
 2001  1 17 23.02519  -6.5242
 2001  1 18 23.08558  -6.0414
 2001  1 19 23.14538  -5.5578
 2001  1 20 23.20458  -5.0736
 2001  1 21 23.26317  -4.5889
 2001  1 22 23.32114  -4.1040
 2001  1 23 23.37850  -3.6193
 2001  1 24 23.43522  -3.1347
 2001  1 25 23.49129  -2.6508
 2001  1 26 23.54671  -2.1675
 2001  1 27 23.60145  -1.6853
 2001  1 28 23.65551  -1.2044
 2001  1 29 23.70887  -0.7249
 2001  1 30 23.76151  -0.2472
 2001  1 31 23.81341   0.2286
 2001  2  1 23.86455   0.7020
 2001  2  2 23.91491   1.1730
 2001  2  3 23.96447   1.6411
 2001  2  4  0.01320   2.1062
 2001  2  5  0.06108   2.5679
 2001  2  6  0.10807   3.0259
 2001  2  7  0.15416   3.4800
 2001  2  8  0.19930   3.9299
 2001  2  9  0.24348   4.3753
 2001  2 10  0.28666   4.8159
 2001  2 11  0.32881   5.2514
 2001  2 12  0.36989   5.6815
 2001  2 13  0.40986   6.1059
 2001  2 14  0.44870   6.5242
 2001  2 15  0.48635   6.9361
 2001  2 16  0.52277   7.3413
 2001  2 17  0.55792   7.7394
 2001  2 18  0.59175   8.1300
 2001  2 19  0.62420   8.5127
 2001  2 20  0.65523   8.8871
 2001  2 21  0.68478   9.2528
 2001  2 22  0.71279   9.6093
 2001  2 23  0.73920   9.9561
 2001  2 24  0.76396  10.2927
 2001  2 25  0.78698  10.6185
 2001  2 26  0.80822  10.9331
 2001  2 27  0.82760  11.2358
 2001  2 28  0.84507  11.5259
 2001  3  1  0.86054  11.8029
 2001  3  2  0.87396  12.0661
 2001  3  3  0.88526  12.3148
 2001  3  4  0.89439  12.5481
 2001  3  5  0.90127  12.7654
 2001  3  6  0.90585  12.9659
 2001  3  7  0.90809  13.1488
 2001  3  8  0.90795  13.3132
 2001  3  9  0.90539  13.4584
 2001  3 10  0.90039  13.5836
 2001  3 11  0.89293  13.6879
 2001  3 12  0.88302  13.7707
 2001  3 13  0.87067  13.8312
 2001  3 14  0.85590  13.8688
 2001  3 15  0.83876  13.8827
 2001  3 16  0.81930  13.8726
 2001  3 17  0.79759  13.8378
 2001  3 18  0.77373  13.7781
 2001  3 19  0.74782  13.6932
 2001  3 20  0.71998  13.5830
 2001  3 21  0.69038  13.4477
 2001  3 22  0.65916  13.2873
 2001  3 23  0.62652  13.1025
 2001  3 24  0.59264  12.8937
 2001  3 25  0.55774  12.6618
 2001  3 26  0.52204  12.4078
 2001  3 27  0.48578  12.1330
 2001  3 28  0.44920  11.8388
 2001  3 29  0.41254  11.5269
 2001  3 30  0.37605  11.1989
 2001  3 31  0.33998  10.8569
 2001  4  1  0.30458  10.5029
 2001  4  2  0.27007  10.1391
 2001  4  3  0.23669   9.7678
 2001  4  4  0.20466   9.3911
 2001  4  5  0.17416   9.0114
 2001  4  6  0.14540   8.6309
 2001  4  7  0.11853   8.2519
 2001  4  8  0.09371   7.8764
 2001  4  9  0.07107   7.5065
 2001  4 10  0.05070   7.1441
 2001  4 11  0.03271   6.7908
 2001  4 12  0.01715   6.4482
 2001  4 13  0.00408   6.1178
 2001  4 14 23.99352   5.8006
 2001  4 15 23.98550   5.4979
 2001  4 16 23.98001   5.2104
 2001  4 17 23.97704   4.9390
 2001  4 18 23.97656   4.6841
 2001  4 19 23.97854   4.4463
 2001  4 20 23.98294   4.2259
 2001  4 21 23.98972   4.0231
 2001  4 22 23.99880   3.8381
 2001  4 23  0.01015   3.6707
 2001  4 24  0.02368   3.5211
 2001  4 25  0.03934   3.3890
 2001  4 26  0.05706   3.2744
 2001  4 27  0.07677   3.1769
 2001  4 28  0.09841   3.0963
 2001  4 29  0.12190   3.0323
 2001  4 30  0.14718   2.9845
 2001  5  1  0.17419   2.9527
 2001  5  2  0.20286   2.9365
 2001  5  3  0.23313   2.9355
 2001  5  4  0.26495   2.9492
 2001  5  5  0.29825   2.9775
 2001  5  6  0.33299   3.0197
 2001  5  7  0.36910   3.0756
 2001  5  8  0.40653   3.1446
 2001  5  9  0.44523   3.2265
 2001  5 10  0.48516   3.3208
 2001  5 11  0.52626   3.4271
 2001  5 12  0.56849   3.5449
 2001  5 13  0.61180   3.6738
 2001  5 14  0.65614   3.8134
 2001  5 15  0.70149   3.9634
 2001  5 16  0.74779   4.1233
 2001  5 17  0.79502   4.2926
 2001  5 18  0.84313   4.4710
 2001  5 19  0.89209   4.6581
 2001  5 20  0.94186   4.8536
 2001  5 21  0.99243   5.0569
 2001  5 22  1.04376   5.2678
 2001  5 23  1.09581   5.4859
 2001  5 24  1.14858   5.7108
 2001  5 25  1.20203   5.9421
 2001  5 26  1.25613   6.1795
 2001  5 27  1.31088   6.4227
 2001  5 28  1.36626   6.6713
 2001  5 29  1.42223   6.9250
 2001  5 30  1.47880   7.1836
 2001  5 31  1.53595   7.4466
 2001  6  1  1.59367   7.7138
 2001  6  2  1.65194   7.9850
 2001  6  3  1.71075   8.2598
 2001  6  4  1.77010   8.5379
 2001  6  5  1.82998   8.8190
 2001  6  6  1.89038   9.1030
 2001  6  7  1.95128   9.3894
 2001  6  8  2.01269   9.6781
 2001  6  9  2.07460   9.9687
 2001  6 10  2.13699  10.2609
 2001  6 11  2.19987  10.5546
 2001  6 12  2.26322  10.8494
 2001  6 13  2.32705  11.1451
 2001  6 14  2.39134  11.4413
 2001  6 15  2.45609  11.7379
 2001  6 16  2.52130  12.0346
 2001  6 17  2.58696  12.3310
 2001  6 18  2.65306  12.6270
 2001  6 19  2.71961  12.9223
 2001  6 20  2.78660  13.2166
 2001  6 21  2.85402  13.5097
 2001  6 22  2.92187  13.8014
 2001  6 23  2.99015  14.0913
 2001  6 24  3.05885  14.3792
 2001  6 25  3.12798  14.6649
 2001  6 26  3.19752  14.9482
 2001  6 27  3.26748  15.2289
 2001  6 28  3.33786  15.5066
 2001  6 29  3.40865  15.7812
 2001  6 30  3.47986  16.0525
 2001  7  1  3.55149  16.3202
 2001  7  2  3.62352  16.5841
 2001  7  3  3.69597  16.8440
 2001  7  4  3.76883  17.0998
 2001  7  5  3.84210  17.3511
 2001  7  6  3.91578  17.5977
 2001  7  7  3.98986  17.8396
 2001  7  8  4.06434  18.0763
 2001  7  9  4.13922  18.3078
 2001  7 10  4.21449  18.5339
 2001  7 11  4.29015  18.7542
 2001  7 12  4.36620  18.9687
 2001  7 13  4.44263  19.1771
 2001  7 14  4.51943  19.3792
 2001  7 15  4.59660  19.5749
 2001  7 16  4.67413  19.7638
 2001  7 17  4.75202  19.9460
 2001  7 18  4.83025  20.1211
 2001  7 19  4.90882  20.2889
 2001  7 20  4.98772  20.4494
 2001  7 21  5.06695  20.6023
 2001  7 22  5.14648  20.7475
 2001  7 23  5.22631  20.8848
 2001  7 24  5.30644  21.0140
 2001  7 25  5.38685  21.1351
 2001  7 26  5.46753  21.2478
 2001  7 27  5.54848  21.3521
 2001  7 28  5.62968  21.4477
 2001  7 29  5.71112  21.5346
 2001  7 30  5.79280  21.6127
 2001  7 31  5.87470  21.6818
 2001  8  1  5.95682  21.7419
 2001  8  2  6.03914  21.7928
 2001  8  3  6.12164  21.8344
 2001  8  4  6.20433  21.8667
 2001  8  5  6.28718  21.8895
 2001  8  6  6.37019  21.9028
 2001  8  7  6.45334  21.9066
 2001  8  8  6.53663  21.9006
 2001  8  9  6.62002  21.8850
 2001  8 10  6.70352  21.8596
 2001  8 11  6.78711  21.8244
 2001  8 12  6.87078  21.7794
 2001  8 13  6.95451  21.7245
 2001  8 14  7.03829  21.6597
 2001  8 15  7.12210  21.5850
 2001  8 16  7.20594  21.5004
 2001  8 17  7.28978  21.4058
 2001  8 18  7.37361  21.3014
 2001  8 19  7.45743  21.1871
 2001  8 20  7.54121  21.0630
 2001  8 21  7.62494  20.9290
 2001  8 22  7.70862  20.7853
 2001  8 23  7.79222  20.6318
 2001  8 24  7.87575  20.4687
 2001  8 25  7.95918  20.2959
 2001  8 26  8.04251  20.1136
 2001  8 27  8.12573  19.9219
 2001  8 28  8.20883  19.7207
 2001  8 29  8.29181  19.5102
 2001  8 30  8.37464  19.2905
 2001  8 31  8.45734  19.0616
 2001  9  1  8.53989  18.8237
 2001  9  2  8.62228  18.5769
 2001  9  3  8.70451  18.3213
 2001  9  4  8.78658  18.0569
 2001  9  5  8.86847  17.7840
 2001  9  6  8.95019  17.5026
 2001  9  7  9.03172  17.2129
 2001  9  8  9.11308  16.9150
 2001  9  9  9.19424  16.6090
 2001  9 10  9.27522  16.2951
 2001  9 11  9.35601  15.9734
 2001  9 12  9.43660  15.6440
 2001  9 13  9.51699  15.3072
 2001  9 14  9.59719  14.9631
 2001  9 15  9.67720  14.6118
 2001  9 16  9.75700  14.2535
 2001  9 17  9.83660  13.8884
 2001  9 18  9.91601  13.5167
 2001  9 19  9.99522  13.1384
 2001  9 20 10.07424  12.7539
 2001  9 21 10.15306  12.3632
 2001  9 22 10.23169  11.9666
 2001  9 23 10.31014  11.5643
 2001  9 24 10.38841  11.1563
 2001  9 25 10.46650  10.7429
 2001  9 26 10.54442  10.3244
 2001  9 27 10.62217   9.9007
 2001  9 28 10.69977   9.4722
 2001  9 29 10.77721   9.0391
 2001  9 30 10.85451   8.6014
 2001 10  1 10.93167   8.1594
 2001 10  2 11.00869   7.7133
 2001 10  3 11.08560   7.2633
 2001 10  4 11.16239   6.8096
 2001 10  5 11.23907   6.3522
 2001 10  6 11.31566   5.8916
 2001 10  7 11.39215   5.4277
 2001 10  8 11.46857   4.9609
 2001 10  9 11.54491   4.4912
 2001 10 10 11.62119   4.0190
 2001 10 11 11.69741   3.5444
 2001 10 12 11.77359   3.0676
 2001 10 13 11.84974   2.5888
 2001 10 14 11.92586   2.1082
 2001 10 15 12.00196   1.6260
 2001 10 16 12.07805   1.1424
 2001 10 17 12.15414   0.6576
 2001 10 18 12.23024   0.1719
 2001 10 19 12.30637  -0.3146
 2001 10 20 12.38252  -0.8016
 2001 10 21 12.45871  -1.2890
 2001 10 22 12.53495  -1.7765
 2001 10 23 12.61125  -2.2640
 2001 10 24 12.68763  -2.7512
 2001 10 25 12.76408  -3.2379
 2001 10 26 12.84063  -3.7239
 2001 10 27 12.91728  -4.2091
 2001 10 28 12.99405  -4.6931
 2001 10 29 13.07094  -5.1758
 2001 10 30 13.14797  -5.6571
 2001 10 31 13.22514  -6.1365
 2001 11  1 13.30247  -6.6141
 2001 11  2 13.37997  -7.0895
 2001 11  3 13.45765  -7.5626
 2001 11  4 13.53552  -8.0331
 2001 11  5 13.61359  -8.5008
 2001 11  6 13.69187  -8.9655
 2001 11  7 13.77037  -9.4270
 2001 11  8 13.84910  -9.8851
 2001 11  9 13.92806 -10.3395
 2001 11 10 14.00727 -10.7901
 2001 11 11 14.08674 -11.2365
 2001 11 12 14.16646 -11.6787
 2001 11 13 14.24646 -12.1163
 2001 11 14 14.32673 -12.5491
 2001 11 15 14.40728 -12.9770
 2001 11 16 14.48813 -13.3996
 2001 11 17 14.56926 -13.8168
 2001 11 18 14.65070 -14.2282
 2001 11 19 14.73244 -14.6338
 2001 11 20 14.81450 -15.0333
 2001 11 21 14.89686 -15.4264
 2001 11 22 14.97955 -15.8129
 2001 11 23 15.06256 -16.1926
 2001 11 24 15.14589 -16.5653
 2001 11 25 15.22955 -16.9308
 2001 11 26 15.31355 -17.2888
 2001 11 27 15.39787 -17.6391
 2001 11 28 15.48253 -17.9816
 2001 11 29 15.56752 -18.3159
 2001 11 30 15.65285 -18.6420
 2001 12  1 15.73850 -18.9596
 2001 12  2 15.82449 -19.2684
 2001 12  3 15.91081 -19.5684
 2001 12  4 15.99746 -19.8592
 2001 12  5 16.08443 -20.1407
 2001 12  6 16.17172 -20.4127
 2001 12  7 16.25932 -20.6750
 2001 12  8 16.34724 -20.9275
 2001 12  9 16.43545 -21.1699
 2001 12 10 16.52395 -21.4021
 2001 12 11 16.61274 -21.6239
 2001 12 12 16.70181 -21.8351
 2001 12 13 16.79113 -22.0356
 2001 12 14 16.88071 -22.2252
 2001 12 15 16.97053 -22.4037
 2001 12 16 17.06058 -22.5711
 2001 12 17 17.15084 -22.7272
 2001 12 18 17.24130 -22.8719
 2001 12 19 17.33195 -23.0050
 2001 12 20 17.42276 -23.1264
 2001 12 21 17.51374 -23.2361
 2001 12 22 17.60485 -23.3340
 2001 12 23 17.69609 -23.4199
 2001 12 24 17.78744 -23.4938
 2001 12 25 17.87888 -23.5557
 2001 12 26 17.97039 -23.6054
 2001 12 27 18.06196 -23.6430
 2001 12 28 18.15357 -23.6684
 2001 12 29 18.24521 -23.6815
 2001 12 30 18.33685 -23.6824
 2001 12 31 18.42848 -23.6711
 2002  1  1 18.52009 -23.6475
 2002  1  2 18.61165 -23.6117
 2002  1  3 18.70315 -23.5637