Text Material Preview
Universidade Federal do ABC Cálculo Numérico Prof. Dr. André Pierro de Camargo LISTA 2 Alunos (Grupo 6): Danilo Cardoso França Deborah Gonçalves Fabri Maria Eduarda V. Lima Rudah Lages Nascimento Larissa Sonza dos Santos RA 11000616 11012216 11028016 11002816 11047715 16 de Dezembro de 2018 1 Primeiro Exerćıcio 1.1 Matriz e o vetor de termos independentes do sis- tema Temos os valores da matriz:〈f1, f1〉 〈f1, f2〉 〈f1, f3〉〈f2, f1〉 〈f2, f2〉 〈f2, f3〉 〈f3, f1〉 〈f3, f2〉 〈f3, f3〉 = 30 435 8555435 8555 189225 8555 189225 4463999 E que os vetores de termos independentes:〈f1, x〉〈f2, x〉 〈f3, x〉 = 1580, 633936, 4 788446, 6 1.2 Coeficientes do sistema Temos também que os coeficientes do sistema obtidos são:α1α2 α3 = −0, 0496370, 970996 0, 135559 Observação: todas casas decimais pelo NetBeans IDE (Java) 1 1.3 Gráfico Temos que a função (1) é f(t) = −0, 049637 + 0, 970996t + 0, 135559t2 ao plotar a função junto com os pontos obtivemos que ela é o próprio ajuste polinomial encontrada pelo método dos mı́nimos quadrados, confirmando que o programa funcionou como esperado. Figure 1: Gráfico dos dados amostrais utilizados e a função de mı́nimos quadrados obtida No gráfico acima podemos perceber a trajetória do gráfico dos dados amostrais em bolinhas maiores sobreposto com o gráfico da função f(t) em bolinhas pequenas. 2 2 Segundo Exerćıcio 2.1 2.2.1 n eq cheb 2 0,9615384615384610 0,9615384615384610000 3 0,6462292672290210 0,6462292672290210000 4 0,7070135746606330 0,8289124668435010000 5 0,4383571344600230 0,4599809026839550000 6 0,4326923076923070 0,6386413798741110000 7 0,6169477692416500 0,3111949710346950000 8 0,2473586065593140 0,4596053247740350000 9 1,0451765283125800 0,2046825174162440000 10 0,3002976812310450 0,3190952547347730000 11 1,9156570975796300 0,1321974272030410000 12 0,5567747428936340 0,2177056172348010000 13 3,66338687584329 0,0843966140850293000 14 1,07010505579867 0,1473232595238350000 15 7,19487822902916 0,0535090213131617000 16 2,10755642685471 0,0993218579519419000 17 14,39384350354460 0,0367129405371400000 18 4,22428765384955 0,0668463301235798000 19 29,19057842822420 0,0257169125178070000 20 8,57909065866618 0,0449546476885306000 21 59,82186148511220 0,0177378047795643000 22 17,60195018352200 0,0302217610279513000 23 123,62327787213700 0,0120901699158497000 24 36,40973110328250 0,0203140396629261000 25 257,21300419226500 0,0081657458099949600 26 75,81694171898690 0,0136534313706021000 27 538,17611909045000 0,0054762839008963800 28 158,74844420209500 0,0091764207223496900 29 1131,41872816431000 0,0036525264723688000 30 333,94146928606000 0,0061673485518688400 31 2388,28352589541000 0,0024257838861388900 32 705,29739334192400 0,0041449644631267300 33 5059,02051970623 0,0016181894007271100 34 1494,703113319655 0,0027857480688839800 3 35 10749,236748565814 0,0011017782918379400 36 3177,28043958799 0,0018722432846569600 37 22901,02133937960 0,0007470055243283810 38 6771,78224332954 0,0012582949728097100 39 48907,31020544010 0,0005046520224958880 40 14466,83453709490 0,0008456731119004240 41 104665,74260449400 0,0003398757364446720 42 30971,07450528820 0,0005683587228242350 43 224430,43259179600 0,0002283028599816550 44 66428,57140021220 0,0003819816607680820 45 482046,33019242500 0,0001530101534136240 46 142721,92398333900 0,0002567216436034630 47 1037089,67860226000 0,0001023510681364960 48 307122,68955323300 0,0001725370830895070 49 2234242,03452858000 0,0000683510648501473 50 661820,47083893500 0,0001159584539487390 Figure 2: Gráfico de n x log(eq) e n x log(cheb) Do gráfico, é posśıvel dizer que tanto Eq quanto Cheb são lineares. Eq cresce e cheb decresce. 4 Figure 3: Valores de Eq e Cheb para n = 10,20,30,40,50 2.2 2.2.2 Foi feita uma mudança no código: 1 2 public static double RungeFunction(double x) // F u n o dada pelo e x e r c c i o 3 { 4 return Math.sin(x); 5 } Erros máximos n=2; Eq: 0.05999375855386757, Cheb: 0.05999375855386757 n=3; Eq: 0.05999375855386746, Cheb: 0.05999375855386746 n=4; Eq: 0.0012181684680384608, Cheb: 9.031432233583825E-4 n=5; Eq: 9.031432233584935E-4, Cheb: 9.302853260387822E-4 n=6; Eq: 1.1630866766698666E-5, Cheb: 5.767050057281509E-6 n=7; Eq: 8.415077161871842E-6, Cheb: 5.825332017206364E-6 n=8; Eq: 7.005136726245809E-8, Cheb: 2.0491357610730176E-8 n=9; Eq: 5.054492124845211E-8, Cheb: 2.0639931180843618E-8 n=10; Eq: 2.9020363889742384E-10, Cheb: 4.725175806186144E-11 n=11; Eq: 2.0955792656707217E-10, Cheb: 4.740516312828902E-11 n=12; Eq: 8.774092563612612E-13, Cheb: 7.671641100159832E-14 n=13; Eq: 6.361577931102147E-13, Cheb: 7.66053886991358E-14 n=14; Eq: 1.2989609388114332E-14, Cheb: 8.881784197001252E-16 n=15; Eq: 1.7541523789077473E-14, Cheb: 1.1102230246251565E-15 n=16; Eq: 3.097522238704187E-14, Cheb: 1.1102230246251565E-15 n=17; Eq: 5.218048215738236E-14, Cheb: 8.881784197001252E-16 n=18; Eq: 1.163513729807164E-13, Cheb: 1.1102230246251565E-15 n=19; Eq: 1.751931932858497E-13, Cheb: 9.992007221626409E-16 5 n=20; Eq: 2.9043434324194095E-13, Cheb: 8.881784197001252E-16 n=21; Eq: 5.184741524999481E-13, Cheb: 1.5543122344752192E-15 n=22; Eq: 1.0306200337595328E-12, Cheb: 1.5543122344752192E-15 n=23; Eq: 1.8184342920335439E-12, Cheb: 1.4432899320127035E-15 n=24; Eq: 3.3091307471977416E-12, Cheb: 1.3322676295501878E-15 n=25; Eq: 6.674882868651366E-12, Cheb: 1.2212453270876722E-15 n=26; Eq: 1.3333556481143205E-11, Cheb: 1.3322676295501878E-15 n=27; Eq: 2.7505553390483328E-11, Cheb: 1.3322676295501878E-15 n=28; Eq: 4.97250018938189E-11, Cheb: 1.5543122344752192E-15 n=29; Eq: 7.309308713843166E-11, Cheb: 1.6653345369377348E-15 n=30; Eq: 1.513634773075978E-10, Cheb: 1.1102230246251565E-15 n=31; Eq: 2.267175336356786E-10, Cheb: 1.2212453270876722E-15 n=32; Eq: 5.806753966552947E-10, Cheb: 1.5543122344752192E-15 n=33; Eq: 8.392221362285568E-10, Cheb: 1.4432899320127035E-15 n=34; Eq: 1.6872770958187289E-9, Cheb: 1.5543122344752192E-15 n=35; Eq: 3.3875108274017407E-9, Cheb: 1.7763568394002505E-15 n=36; Eq: 5.444851791658323E-9, Cheb: 1.5543122344752192E-15 n=37; Eq: 1.1925206711005387E-8, Cheb: 1.887379141862766E-15 n=38; Eq: 3.3617579053846214E-8, Cheb: 1.6653345369377348E-15 n=39; Eq: 5.596403396257443E-8, Cheb: 1.887379141862766E-15 n=40; Eq: 1.0717024889750348E-7, Cheb: 1.4432899320127035E-15 n=41; Eq: 1.615180922343029E-7, Cheb: 1.887379141862766E-15 n=42; Eq: 3.7157818155719724E-7, Cheb: 1.5543122344752192E-15 n=43; Eq: 5.835096965611797E-7, Cheb: 2.220446049250313E-15 n=44; Eq: 1.349485743928902E-6, Cheb: 2.55351295663786E-15 n=45; Eq: 2.4814586120358584E-6, Cheb: 2.220446049250313E-15 n=46; Eq: 5.104935364430574E-6, Cheb: 1.5543122344752192E-15 n=47; Eq: 1.0295438201302076E-5, Cheb: 1.7763568394002505E-15 n=48; Eq: 2.0895368311624196E-5, Cheb: 1.7763568394002505E-15 n=49; Eq: 3.014201515949555E-5, Cheb: 2.220446049250313E-15 n=50; Eq: 6.011946138384516E-5, Cheb: 1.887379141862766E-15 Valores que serão plotados n=2; Eq: -2.443787858119692, Cheb: -2.443787858119692 n=3; Eq: -3.665681787179541, Cheb: -3.665681787179541 n=4; Eq: -11.657170585137548, Cheb: -12.176973489634403 n=5; Eq: -15.221216862042734, Cheb: -15.156919146911527 n=6; Eq: -29.606327514913453, Cheb: -31.43427767370199 6 n=7; Eq: -35.52459328191091, Cheb: -36.64275521762097 n=8; Eq: -57.23666706989263, Cheb: -61.50743413920652 n=9; Eq: -65.66690228194729, Cheb: -69.16762579588732 n=10; Eq: -95.37297146194757, Cheb: -103.25582028374585 n=11; Eq: -106.46565497975968, Cheb: -113.56591790073887 n=12; Eq: -144.68157345902134, Cheb: -157.38134067380165 n=13; Eq: -158.55365692690697, Cheb: -170.5046288328987 n=14; Eq: -194.40965471822778, Cheb: -210.72099696478682 n=15; Eq: -206.33899024854873, Cheb: -224.31884655286504 n=16; Eq: -216.1437690706785, Cheb: -239.27343632305605 n=17; Eq: -225.80236250833988, Cheb: -255.875496314384 n=18; Eq: -232.81611277577932, Cheb: -269.18261586343806 n=19; Eq: -242.37317265503444, Cheb: -285.00659795428186 n=20; Eq: -250.73904061077548, Cheb:-301.0299956639812 n=21; Eq: -257.9907306821227, Cheb: -310.97769642476806 n=22; Eq: -263.7118312342292, Cheb: -325.78615815928083 n=23; Eq: -270.02695490745384, Cheb: -341.3348676113358 n=24; Eq: -275.52686575378664, Cheb: -357.00980457944104 n=25; Eq: -279.3889087732221, Cheb: -372.82992712581944 n=26; Eq: -282.7514038716337, Cheb: -386.7606216277278 n=27; Eq: -285.1356495498357, Cheb: -401.6360301518712 n=28; Eq: -288.49590536656547, Cheb: -414.6369285663574 n=29; Eq: -293.94758715479304, Cheb: -428.57645682292434 n=30; Eq: -294.5993671104524, Cheb: -448.6376931057301 n=31; Eq: -298.9799616388936, Cheb: -462.3091096360161 n=32; Eq: -295.55413039135675, Cheb: -473.87077550440847 n=33; Eq: -299.5120612850379, Cheb: -489.74133179017747 n=34; Eq: -298.2756620204832, Cheb: -503.487698973434 n=35; Eq: -296.45417577974007, Cheb: -516.2664425637278 n=36; Eq: -297.5045017392473, Cheb: -533.1046224424596 n=37; Eq: -293.1707611147071, Cheb: -544.793211406071 n=38; Eq: -283.9904754768434, Cheb: -561.5829434231422 n=39; Eq: -282.83154855242026, Cheb: -574.2414931036964 n=40; Eq: -278.7970304263703, Cheb: -593.6258567153666 n=41; Eq: -278.4629317712605, Cheb: -603.6897748013218 n=42; Eq: -270.0578913886432, Cheb: -621.9553928495361 n=43; Eq: -268.05993267197215, Cheb: -630.103070304662 n=44; Eq: -258.2725947561545, Cheb: -642.0859251036301 7 n=45; Eq: -252.2381833779391, Cheb: -659.410189853716 n=46; Eq: -243.43244860641533, Cheb: -681.1892397875872 n=47; Eq: -234.40569270430518, Cheb: -693.2720800141486 n=48; Eq: -224.63759852992172, Cheb: -708.0225498016837 n=49; Eq: -221.52055808772496, Cheb: -718.024428951824 n=50; Eq: -211.04924594772933, Cheb: -736.2070424406364 Figure 4: Gráfico de Eq/Cheb para f(x) = sen(x) N Eq Cheb 10 -95,3729714619475 -103,2558202837450 20 -250,7390406107750 -301,0299956639810 30 -294,5993671104520 -448,6376931057300 40 -278,7970304263700 -593,6258567153660 50 -211,0492459477290 -736,2070424406360 Table 1: Tabela com os valores para n=10,20,30,40,50 Podemos perceber através do gráfico acima que com o aumento do N, o Cheb tende a diminuir quase que proporcionalmente. Com isso, pode- mos dizer que N e Cheb são inversamente proporcionais entre si. Já Eq se assemelha com uma parábola com o aumento de N. 8 2.3 2.2.3 Resultado dos Erros pelo Lagrange n=2 Cheb: 0.05999375855386757 n=3 Cheb: 0.05999375855386746 n=4 Cheb: 9.031432233583825E-4 n=5 Cheb: 9.302853260387822E-4 n=6 Cheb: 5.767050057281509E-6 n=7 Cheb: 5.825332017206364E-6 n=8 Cheb: 2.0491357610730176E-8 n=9 Cheb: 2.0639931180843618E-8 n=10 Cheb: 4.725175806186144E-11 n=11 Cheb: 4.740516312828902E-11 n=12 Cheb: 7.671641100159832E-14 n=13 Cheb: 7.66053886991358E-14 n=14 Cheb: 8.881784197001252E-16 n=15 Cheb: 1.1102230246251565E-15 n=16 Cheb: 1.1102230246251565E-15 n=17 Cheb: 8.881784197001252E-16 n=18 Cheb: 1.1102230246251565E-15 n=19 Cheb: 9.992007221626409E-16 n=20 Cheb: 8.881784197001252E-16 n=21 Cheb: 1.5543122344752192E-15 n=22 Cheb: 1.5543122344752192E-15 n=23 Cheb: 1.4432899320127035E-15 n=24 Cheb: 1.3322676295501878E-15 n=25 Cheb: 1.2212453270876722E-15 n=26 Cheb: 1.3322676295501878E-15 n=27 Cheb: 1.3322676295501878E-15 n=28 Cheb: 1.5543122344752192E-15 n=29 Cheb: 1.6653345369377348E-15 n=30 Cheb: 1.1102230246251565E-15 n=31 Cheb: 1.2212453270876722E-15 n=32 Cheb: 1.5543122344752192E-15 n=33 Cheb: 1.4432899320127035E-15 n=34 Cheb: 1.5543122344752192E-15 n=35 Cheb: 1.7763568394002505E-15 n=36 Cheb: 1.5543122344752192E-15 9 n=37 Cheb: 1.887379141862766E-15 n=38 Cheb: 1.6653345369377348E-15 n=39 Cheb: 1.887379141862766E-15 n=40 Cheb: 1.4432899320127035E-15 n=41 Cheb: 1.887379141862766E-15 n=42 Cheb: 1.5543122344752192E-15 n=43 Cheb: 2.220446049250313E-15 n=44 Cheb: 2.55351295663786E-15 n=45 Cheb: 2.220446049250313E-15 n=46 Cheb: 1.5543122344752192E-15 n=47 Cheb: 1.7763568394002505E-15 n=48 Cheb: 1.7763568394002505E-15 n=49 Cheb: 2.220446049250313E-15 n=50 Cheb: 1.887379141862766E-15 n=51 Cheb: 1.7763568394002505E-15 n=52 Cheb: 2.3314683517128287E-15 n=53 Cheb: 1.6653345369377348E-15 n=54 Cheb: 2.1094237467877974E-15 n=55 Cheb: 2.220446049250313E-15 n=56 Cheb: 2.1094237467877974E-15 n=57 Cheb: 2.7755575615628914E-15 n=58 Cheb: 2.220446049250313E-15 n=59 Cheb: 1.6653345369377348E-15 n=60 Cheb: 1.6653345369377348E-15 n=61 Cheb: 1.887379141862766E-15 n=62 Cheb: 2.1094237467877974E-15 n=63 Cheb: 2.220446049250313E-15 n=64 Cheb: 1.9984014443252818E-15 n=65 Cheb: 2.55351295663786E-15 n=66 Cheb: 1.887379141862766E-15 n=67 Cheb: 2.220446049250313E-15 n=68 Cheb: 2.1094237467877974E-15 n=69 Cheb: 2.6645352591003757E-15 n=70 Cheb: 2.3314683517128287E-15 n=71 Cheb: 2.220446049250313E-15 n=72 Cheb: 3.552713678800501E-15 n=73 Cheb: 1.9984014443252818E-15 n=74 Cheb: 2.7755575615628914E-15 10 n=75 Cheb: 2.4424906541753444E-15 n=76 Cheb: 2.7755575615628914E-15 n=77 Cheb: 2.4424906541753444E-15 n=78 Cheb: 2.55351295663786E-15 n=79 Cheb: 2.220446049250313E-15 n=80 Cheb: 2.55351295663786E-15 n=81 Cheb: 2.55351295663786E-15 n=82 Cheb: 2.4424906541753444E-15 n=83 Cheb: 2.220446049250313E-15 n=84 Cheb: 2.6645352591003757E-15 n=85 Cheb: 2.6645352591003757E-15 n=86 Cheb: 2.55351295663786E-15 n=87 Cheb: 2.6645352591003757E-15 n=88 Cheb: 2.3314683517128287E-15 n=89 Cheb: 2.220446049250313E-15 n=90 Cheb: 1.9984014443252818E-15 n=91 Cheb: 2.6645352591003757E-15 n=92 Cheb: 3.1086244689504383E-15 n=93 Cheb: 2.55351295663786E-15 n=94 Cheb: 2.220446049250313E-15 n=95 Cheb: 2.1094237467877974E-15 n=96 Cheb: 2.4424906541753444E-15 n=97 Cheb: 2.886579864025407E-15 n=98 Cheb: 3.3306690738754696E-15 n=99 Cheb: 2.1094237467877974E-15 n=100 Cheb: 2.55351295663786E-15 Resultado dos Erros por Newton n=2 Cheb: 0.05999375855386757 n=3 Cheb: 0.059993758553867516 n=4 Cheb: 9.031432233583825E-4 n=5 Cheb: 9.302853260387822E-4 n=6 Cheb: 5.767050057503553E-6 n=7 Cheb: 5.825332017345142E-6 n=8 Cheb: 2.0491357499707874E-8 n=9 Cheb: 2.0639931125332467E-8 n=10 Cheb: 4.7251647039558975E-11 n=11 Cheb: 4.740507986156217E-11 11 n=12 Cheb: 7.682743330406083E-14 n=13 Cheb: 7.663314427475143E-14 n=14 Cheb: 6.661338147750939E-16 n=15 Cheb: 6.661338147750939E-16 n=16 Cheb: 6.661338147750939E-16 n=17 Cheb: 6.661338147750939E-16 n=18 Cheb: 6.661338147750939E-16 n=19 Cheb: 5.551115123125783E-16 n=20 Cheb: 6.661338147750939E-16 n=21 Cheb: 7.771561172376096E-16 n=22 Cheb: 6.661338147750939E-16 n=23 Cheb: 6.661338147750939E-16 n=24 Cheb: 6.661338147750939E-16 n=25 Cheb: 7.771561172376096E-16 n=26 Cheb: 7.771561172376096E-16 n=27 Cheb: 7.771561172376096E-16 n=28 Cheb: 7.771561172376096E-16 n=29 Cheb: 7.771561172376096E-16 n=30 Cheb: 8.881784197001252E-16 n=31 Cheb: 7.771561172376096E-16 n=32 Cheb: 7.771561172376096E-16 n=33 Cheb: 8.881784197001252E-16 n=34 Cheb: 7.771561172376096E-16 n=35 Cheb: 7.771561172376096E-16 n=36 Cheb: 8.881784197001252E-16 n=37 Cheb: 1.6653345369377348E-15 n=38 Cheb: 9.992007221626409E-16 n=39 Cheb: 7.771561172376096E-15 n=40 Cheb: 1.9761969838327786E-14 n=41 Cheb: 7.405187574249794E-14 n=42 Cheb: 1.1812772982011666E-13 n=43 Cheb: 1.4530598946294049E-12 n=44 Cheb: 3.269606807521086E-13 n=45 Cheb: 6.798672735897071E-12 n=46 Cheb: 2.907107887750726E-11 n=47 Cheb: 1.3605783166781293E-11 n=48 Cheb: 6.952112219238415E-10 n=49 Cheb: 4.599421954409877E-10 12 n=50 Cheb: 1.7183499068096353E-10 n=51 Cheb: 7.092750720083529E-9 n=52 Cheb: 3.9996309708634215E-8 n=53 Cheb: 6.780240247028502E-8 n=54 Cheb: 3.7440987432635353E-7 n=55 Cheb: 6.116835047365043E-7 n=56 Cheb: 1.1841672400425551E-6 n=57 Cheb: 2.0696581679024995E-5 n=58 Cheb: 2.1880513936922696E-5 n=59 Cheb: 7.623162719405663E-5 n=60 Cheb: 1.869820285992363E-4 n=61 Cheb: 0.002069405357375209 n=62 Cheb: 1.4167530269892925E-4 n=63 Cheb: 0.003930656806532262 n=64 Cheb: 0.03221788567802153 n=65 Cheb: 0.09678662051447495 n=66 Cheb: 0.13736819031288638 n=67 Cheb: 0.8575087269857538 n=68 Cheb: 1.1611672581783572 n=69 Cheb: 15.53209452155628 n=70 Cheb: 11.685829873280248 n=71 Cheb: 156.58757443536913 n=72 Cheb: 182.21245031614356 n=73 Cheb: 553.1357112352252 n=74 Cheb: 2470.386248589065 n=75 Cheb:472.8434310399252 n=76 Cheb: 38465.989963898544 n=77 Cheb: 30704.419164538827 n=78 Cheb: 196717.38116822718 n=79 Cheb: 361419.5053907233 n=80 Cheb: 4267324.661819108 n=81 Cheb: 4822104.763122913 n=82 Cheb: 4.710548469231567E7 n=83 Cheb: 4.077560464156439E7 n=84 Cheb: 3.2352560459809524E8 n=85 Cheb: 8.557904406768434E8 n=86 Cheb: 4.2546511890560637E9 n=87 Cheb: 5.252882012550456E9 13 n=88 Cheb: 3.0046385644776604E10 n=89 Cheb: 4.9693389037084564E10 n=90 Cheb: 1.720877354763722E11 n=91 Cheb: 7.00150633900874E11 n=92 Cheb: 9.873218986362789E11 n=93 Cheb: 1.3867184423739597E12 n=94 Cheb: 3.502781401319988E13 n=95 Cheb: 2.4734305408923138E14 n=96 Cheb: 3.197925808861016E14 n=97 Cheb: 6.819038625340199E14 n=98 Cheb: 4.4776674560034475E15 n=99 Cheb: 1.5268762773507636E16 n=100 Cheb: 5.88661146297628E16 Nota-se que os erros no algoritmo de newton são maiores. 3 Terceiro Exerćıcio 3.1 Tabela log(h10) -1 log(ET10) -2,8441592 log(ES10) -6,0206949 log(h20) -1,30103 log(ET20) -3,4461649 log(ES20) -7,2244273 log(h30) -1,4771213 log(ET30) -3,7983374 log(ES30) -7,9287206 log(h40) -1,60206 log(ET40) -4,0482114 log(ES40) -8,4284504 log(h50) -1,69897 log(ET50) -4,2420298 log(ES50) -8,8160788 log(h60) -1,7781513 log(ET60) -4,4003914 log(ES60) -9,1327969 log(h70) -1,845098 log(ET70) -4,5342844 log(ES70) -9,4005813 log(h80) -1,90309 log(ET80) -4,650268 log(ES80) -9,6325451 log(h90) -1,9542425 log(ET90) -4,7525728 log(ES90) -9,8371547 log(h100) -2 log(ET100) -4,8440876 log(ES100) -10,020183 Table 2: valores log(hn), log(En) para f(x) = exp(x) (para En = ETn e para En = ESn) 14 3.2 Gráficos O método do mı́nimos quadrados foi utilizados para linearização. Queremos minimizar o erro quadrático médio (S) das medidas, seja então um conjunto finito de N medidas (xi, yi) com i ∈ N∗ variando de 1 a N. Definimos S como: S = N∑ i=1 ∆Si = ∑ i=1 (y − yi)2 Tal que y = ax+b para encontrar os parâmetros a e b, podemos considerar a equação anterior como de duas variáveis tal que para um par ordenado (a, b) ser considerado um mı́nimo local é condição necessária que as derivadas parciais δS δa = 0 e δS δb = 0. Para que o mı́nimo exista esta condição é necessária e nos leva a um par de equações simplificadas: a N∑ i=1 x2i + b N∑ i=1 xi = N∑ i=1 xiyi a N∑ i=1 xi + bN = N∑ i=1 yi Das duas expressões isolamos e conseguimos extrair o valor dos parâmetros a e b para encontrar a função aproximadora que queremos, finalmente: a = N ∑N i=1 xiyi − ∑N i=1 xi ∑N i=1 yi N ∑N i=1 x 2 i − ( ∑N i=1 xi) 2 b = N ∑N i=1 x 2 i ∑N i=1 yi − ∑N i=1 xiyi ∑N i=1 xi NNi=1x 2 i − ( ∑N i=1 xi) 2 Este exerćıcio também foi realizado no Excel sendo x = log(h) e y = log(ETn) para ETN e y = log(ESn) para ESn. Primeiro realizou-se o somátorio, depois calculamos o denominador que é igual para ambas ex- pressões e extráımos o valor de a e b para ETn e ESn que foi: Coeficientes ETn ESn a 1,999941 3,999576 b -0,844196 -2,020960 Table 3: Coeficientes a e b obitods para ET e ES pelo método dos mı́nimos quadrados 15 Figure 5: Erro na regra dos trapézios para f(x) = exp(x) Figure 6: Erro na regra de simpson para f(x) = exp(x) Ao aproximar ambos os gráficos podemos ver os coeficientes de mı́nimos quadrados obtidos com 6 casas decimais. Para o ET notamos que o co- eficiente angular da reta obtida 1,99994 é próximo a 2 e que para ES o 16 coeficiente angular da reta obtida 3,999576 é próximo a 4, tal como esperado já que, como enunciado: log(En) = log(µ) + p log(n) pra En = µh p tendo que pro ETn ≤ c1h2 e ESn ≤ c2h4. Figure 7: ET e o ajuste de mı́nimos quadrados Figure 8: ES e o ajuste de mı́nimos quadrados 17 4 Códigos Utilizados 4.1 Código do primeiro exerćıcio 1 ackage javaapplication1; 2 3 import java.util.Scanner; 4 5 6 public class JavaApplication1 { 7 8 public static void main(String [] args) { 9 10 Scanner scan = new Scanner(System.in); 11 12 //CRIA TABELA 13 System.out.println("Entre com valor de n+1:"); 14 int n = scan.nextInt (); 15 double [][] Tabela = new double [2][30]; 16 17 System.out.println("Entre com os valores:"); 18 for(int i=0;i<2;i++){ 19 for(int j=0;j<n;j++){ 20 Tabela[i][j]=scan.nextDouble (); 21 } 22 } 23 24 // C O N S T R U O DA MATRIZ // 25 double [][] matrizF = new double [3][3]; 26 27 matrizF [0][0]= 30; 28 double somaum =0; 29 for(int q=0; q<30; q++){ 30 31 somaum=somaum+Tabela [0][q]; 32 33 } 34 35 matrizF [0][1]= somaum; 36 matrizF [1][0]= somaum; 18 37 double somadois =0; 38 for(int w=0; w<30; w++){ 39 40 somadois =( somadois +( Tabela [0][w]* Tabela [0][w])); 41 42 } 43 44 matrizF [0][2]= somadois; 45 matrizF [2][0]= somadois; 46 matrizF [1][1]= somadois; 47 double somatres =0; 48 for(int e=0; e<30; e++){ 49 50 somatres =( somatres +( Tabela [0][e]* Tabela [0][e]* Tabela [0][e])); 51 52 } 53 54 matrizF [1][2]= somatres; 55 matrizF [2][1]= somatres; 56 double somaquatro =0; 57 for(int r=0; r<30; r++){ 58 59 somaquatro =( somaquatro +( Tabela [0][r]* Tabela [0][r ]* Tabela [0][r]* Tabela [0][r])); 60 61 } 62 63 matrizF [2][2]= somaquatro; 64 65 // C O N S T R U O DO VETOR DE TERMOS INDEPENDENTES // 66 double [][] matrizFX=new double [3][1]; 67 68 double soma1 =0; 69 70 for(int t=0;t<30;t++){ 71 72 soma1=soma1+Tabela [1][t]; 73 } 74 matrizFX [0][0]= soma1; 19 75 double soma2 =0; 76 for (int y=0;y<30;y++){ 77 78 soma2 =(soma2 +( Tabela [0][y]* Tabela [1][y])); 79 } 80 matrizFX [1][0]= soma2; 81 double soma3 =0; 82 for(int u=0;u<30;u++){ 83 84 soma3 =(soma3 +( Tabela [0][u]* Tabela [1][u]* Tabela [0][u])); 85 86 } 87 matrizFX [2][0]= soma3; 88 89 // M T O D O DE GAUSS// 90 91 double mult=(-matrizF [1][0]) /( matrizF [0][0]); 92 matrizFX [1][0]= matrizFX [1][0]+( matrizFX [0][0]* mult ); 93 for(int p=0; p<3; p++){ 94 95 matrizF [1][p]= matrizF [1][p]+( mult*matrizF [0][p ]); 96 97 } 98 99 double mult1=(-matrizF [2][0]) /( matrizF [0][0]); 100 matrizFX [2][0]= matrizFX [2][0]+( matrizFX [0][0]* mult1); 101 for(int g=0; g<3; g++){ 102 103 matrizF [2][g]= matrizF [2][g]+( matrizF [0][g]* mult1); 104 } 105 106 107 108 109 20 110 111 double mult2=(-matrizF [2][1]) /( matrizF [1][1]); 112 matrizFX [2][0]= matrizFX [2][0]+( mult2*matrizFX [1][0]); 113 for(int a=0;a<3;a++){ 114 115 matrizF [2][a]= matrizF [2][a]+( mult2*matrizF [1][a]); 116 117 } 118 119 double alfa3=matrizFX [2][0]/ matrizF [2][2]; 120 double alfa2 =(( matrizFX [1][0] -( alfa3*matrizF [1][2]))/( matrizF [1][1])); 121 double alfa1 =(( matrizFX [0][0] -( alfa2*matrizF [0][1]) -( alfa3*matrizF [0][2]))/( matrizF [0][0])); 122 123 124 125 126 127 128 129 } 130 } 4.2 Código do segundo exerćıcio 1 public class JavaApplication17 { 2 3 private static double lagrangeBase(double [] xVal , double x, int n) // Calcula o valor de um p o l i n m i o da base de lagrange em x 4 { 5 double ret = 1; 6 for (int i=0; i < xVal.length; i++) 7 { 8 if (i==n) 9 continue; 10 ret *= (x - xVal[i]) / (xVal[n] - xVal[i]); 11 } 12 return ret; 21 13 } 14 15 public static double lagrangeInterpolation(double [] xVal , double [] yVal , double x) // Calcula o valor do polinomio de lagrange em x 16 { 17 double ret = 0; 18 for (int i=0; i < xVal.length; i++) 19 { 20 ret += yVal[i] * lagrangeBase(xVal , x, i); 21 } 22 return ret; 23 } 24 25 public static double max(double [] set) // Retorna o maior valor de um array 26 { 27 double ret = 0; 28 for (int i=0; i < set.length; i++) 29 { 30 if (Math.abs(set[i]) > ret) 31 ret = Math.abs(set[i]); 32 } 33 return ret; 34 } 35 36 public static double RungeFunction(double x) // F u n o dada pelo e x e r c c i o 37 { 38 return 1.0 / (1.0 + 25.0 * x * x ); 39 } 40 public static void main(String [] args) { 41 Scanner scan = new Scanner(System.in); 42 43 44 for (int j=2; j<51; j++) 45 { 46 int n = j; 47 int k = n-1; 48 double [] xEq = new double[n]; 22 49 double [] yEq = new double[n];50 double [] xCheb = new double[n]; 51 double [] yCheb = new double[n]; 52 53 for (int i=0; i<n; i++) // G e r a o dos pares x e y para os n s igualmente e s p a a d o s 54 { 55 xEq[i] = (2.0 * i / k) - 1.0; 56 yEq[i] =RungeFunction(xEq[i]); 57 } 58 59 for (int i=0; i<n; i++) // G e r a o dos pares x e y para os n s de Chebyshev do segundo tipo 60 { 61 xCheb[i] = Math.cos(Math.PI * i / k); 62 yCheb[i] = RungeFunction(xCheb[i]); 63 } 64 65 double [] eq = new double [10117]; 66 double [] cheb = new double [10117]; 67 68 for (int i=0; i <10117; i++) 69 { 70 double x = (2.0 * i / 10116) -1; 71 eq[i] = lagrangeInterpolation(xEq , yEq , x) - RungeFunction(x); // Guarda no array o erro entre as duas f u n e s 72 cheb[i] = lagrangeInterpolation(xCheb , yCheb , x) - RungeFunction(x); 73 } 74 75 System.out.println("n=" + j + "; Eq: " + max (eq) + ", Cheb: " + max(cheb)); // Imprime o erro maximo dos dois tipos de n para cada n 23 ***mudança do código para incluir as novas funções, acrescentou-se o seguinte: 1 double EXQ = n* (Math.log10(max(eq))); 2 double EXC = n* (Math.log10(max(cheb))); 4.2.1 CÁLCULO DA FUNÇÃO E ERRO DE LAGRANGE 1 private static double lagrangeBase(double [] xVal , double x, int n) // Calcula o valor de um p o l i n m i o da base de lagrange em x 2 { 3 double ret = 1; 4 for (int i=0; i < xVal.length; i++) 5 { 6 if (i==n) 7 continue; 8 ret *= (x - xVal[i]) / (xVal[n] - xVal[i]); 9 } 10 return ret; 11 } 12 13 public static double lagrangeInterpolation(double [] xVal , double [] yVal , double x) // Calcula o valor do polinomio de lagrange em x 14 { 15 double ret = 0; 16 for (int i=0; i < xVal.length; i++) 17 { 18 ret += yVal[i] * lagrangeBase(xVal , x, i); 19 } 20 return ret; 21 } 22 23 public static double max(double [] set) // Retorna o maior valor de um array 24 { 25 double ret = 0; 26 for (int i=0; i < set.length; i++) 27 { 24 28 if (Math.abs(set[i]) > ret) 29 ret = Math.abs(set[i]); 30 } 31 return ret; 32 } 33 34 public static double F u n o (double x) // F u n o dada pelo e x e r c c i o 35 { 36 return Math.sin(x); 37 } 38 public static void main(String [] args) { 39 Scanner scan = new Scanner(System.in); 40 41 42 for (int j=2; j <101; j++) 43 { 44 int n = j; 45 int k = n-1; 46 47 double [] xCheb = new double[n]; 48 double [] yCheb = new double[n]; 49 50 51 for (int i=0; i<n; i++) // G e r a o dos pares x e y para os n s de Chebyshev do segundo tipo 52 { 53 xCheb[i] = Math.cos(Math.PI * i / k); 54 yCheb[i] = F u n o (xCheb[i]); 55 } 56 57 58 double [] cheb = new double [10117]; 59 60 for (int i=0; i <10117; i++) 61 { 62 double x = (2.0 * i / 10116) -1; 63 // Guarda no array o erro entre as duas f u n e s 25 64 cheb[i] = lagrangeInterpolation(xCheb , yCheb , x) - F u n o (x); 65 } 66 67 System.out.println("n=" + j + " Cheb: " + max(cheb)); // Imprime o erro maximo dos dois tipos de n para cada n 68 69 70 71 72 73 74 75 76 77 78 } 79 80 } 4.2.2 CÁLCULO DO ERRO POR INTERPOLAÇÃO DE NEW- TON 1 public static double [] dividedDifferences(double [] x, double [] y) 2 { 3 double [][] m = new double[x.length ][x.length ]; 4 for (int i=0; i < x.length; i++) 5 m[i][i] = y[i]; 6 for (int j=1; j < x.length; j++) 7 for (int i=j-1; i >= 0; i--) 8 m[i][j] = ( m[i+1][j] - m[i][j-1] ) / ( x[j] - x[i] ); 9 10 return m[0]; 11 } 12 13 public static double newtonInterpolation(double [] xs , double [] ys, double x) 14 { 26 15 double sum = 0; 16 double prod = 1; 17 double [] m = dividedDifferences(xs , ys); 18 for (int i=0; i < xs.length; i++) 19 { 20 sum += m[i] * prod; 21 prod *= x - xs[i]; 22 } 23 return sum; 24 } 25 26 public static double max(double [] set) // Retorna o maior valor de um array 27 { 28 double ret = 0; 29 for (int i=0; i < set.length; i++) 30 { 31 if (Math.abs(set[i]) > ret) 32 ret = Math.abs(set[i]); 33 } 34 return ret; 35 } 36 37 public static double F u n o (double x) // F u n o dada pelo e x e r c c i o 38 { 39 return Math.sin(x); 40 } 41 public static void main(String [] args) { 42 Scanner scan = new Scanner(System.in); 43 44 45 for (int j=2; j <101; j++) 46 { 47 int n = j; 48 int k = n-1; 49 50 double [] xCheb = new double[n]; 51 double [] yCheb = new double[n]; 52 27 53 54 for (int i=0; i<n; i++) // G e r a o dos pares x e y para os n s de Chebyshev do segundo tipo 55 { 56 xCheb[i] = Math.cos(Math.PI * i / k); 57 yCheb[i] = F u n o (xCheb[i]); 58 } 59 60 61 double [] cheb = new double [10117]; 62 63 for (int i=0; i <10117; i++) 64 { 65 double x = (2.0 * i / 10116) -1; 66 // Guarda no array o erro entre as duas f u n e s 67 cheb[i] = newtonInterpolation(xCheb , yCheb , x) - F u n o (x); 68 } 69 70 System.out.println("n=" + j + " Cheb: " + max(cheb)); 28