ford_gradient2: Python version: 3.6.8 Given mileage x and price y for used Fords, seek (m,b) so that y=b+mx approximates the data. Use gradient descent to estimate best b and m. it x f(x) f'(x) it: 0 x: [0.5 0. ] f(x) 1.7156939184673647 df(x) [2.40298507 3.9880597 ] it: 1 x: [ 0.47597015 -0.0398806 ] f(x) 1.5676726347605254 df(x) [-0.0742806 2.03201433] it: 2 x: [ 0.47671296 -0.06020074] f(x) 1.531666876341145 df(x) [-0.73912445 1.4821004 ] it: 3 x: [ 0.4841042 -0.07502174] f(x) 1.5048361576684801 df(x) [-0.90896974 1.31662838] it: 4 x: [ 0.4931939 -0.08818803] f(x) 1.479476858123571 df(x) [-0.94376382 1.25644481] it: 5 x: [ 0.50263154 -0.10075248] f(x) 1.4549882740066096 df(x) [-0.94184948 1.22527439] it: 6 x: [ 0.51205003 -0.11300522] f(x) 1.431300775534029 df(x) [-0.93009311 1.20227291] it: 7 x: [ 0.52135096 -0.12502795] f(x) 1.4083851855451774 df(x) [-0.91583216 1.18174125] it: 8 x: [ 0.53050928 -0.13684536] f(x) 1.3862161278685092 df(x) [-0.90106836 1.16211839] it: 9 x: [ 0.53951997 -0.14846655] f(x) 1.3647692657958095 df(x) [-0.88634564 1.14297398] it: 10 x: [ 0.54838342 -0.15989629] f(x) 1.3440210713130525 df(x) [-0.87180969 1.12418665] it: 11 x: [ 0.55710152 -0.17113815] f(x) 1.32394878405655 df(x) [-0.85749744 1.10571952] it: 12 x: [ 0.56567649 -0.18219535] f(x) 1.3045303852081431 df(x) [-0.84341613 1.08755887] it: 13 x: [ 0.57411066 -0.19307094] f(x) 1.2857445732561952 df(x) [-0.82956496 1.06969735] it: 14 x: [ 0.58240631 -0.20376791] f(x) 1.2675707406220147 df(x) [-0.81594097 1.05212941] it: 15 x: [ 0.59056571 -0.2142892 ] f(x) 1.2499889510533717 df(x) [-0.80254064 1.03485005] it: 16 x: [ 0.59859112 -0.2246377 ] f(x) 1.232979917754877 df(x) [-0.78936036 1.0178545 ] it: 17 x: [ 0.60648472 -0.23481625] f(x) 1.2165249822308342 df(x) [-0.77639654 1.00113807] it: 18 x: [ 0.61424869 -0.24482763] f(x) 1.2006060938173246 df(x) [-0.76364563 0.98469618] it: 19 x: [ 0.62188515 -0.25467459] f(x) 1.1852057898810682 df(x) [-0.75110413 0.96852432] it: 20 x: [ 0.62939619 -0.26435983] f(x) 1.1703071766633384 df(x) [-0.73876859 0.95261805] it: 21 x: [ 0.63678387 -0.27388601] f(x) 1.155893910747921 df(x) [-0.72663565 0.93697301] it: 22 x: [ 0.64405023 -0.28325574] f(x) 1.141950181132784 df(x) [-0.71470197 0.92158492] it: 23 x: [ 0.65119725 -0.29247159] f(x) 1.1284606918857922 df(x) [-0.70296427 0.90644955] it: 24 x: [ 0.65822689 -0.30153609] f(x) 1.115410645365444 df(x) [-0.69141935 0.89156275] it: 25 x: [ 0.66514109 -0.31045172] f(x) 1.1027857259882154 df(x) [-0.68006403 0.87692043] it: 26 x: [ 0.67194173 -0.31922092] f(x) 1.0905720845247162 df(x) [-0.66889521 0.86251859] it: 27 x: [ 0.67863068 -0.32784611] f(x) 1.078756322907421 df(x) [-0.65790981 0.84835328] it: 28 x: [ 0.68520978 -0.33632964] f(x) 1.067325479533315 df(x) [-0.64710483 0.83442061] it: 29 x: [ 0.69168082 -0.34467385] f(x) 1.0562670150453306 df(x) [-0.63647729 0.82071675] it: 30 x: [ 0.6980456 -0.35288101] f(x) 1.0455687985769788 df(x) [-0.6260243 0.80723796] it: 31 x: [ 0.70430584 -0.36095339] f(x) 1.0352190944450834 df(x) [-0.61574298 0.79398053] it: 32 x: [ 0.71046327 -0.3688932 ] f(x) 1.0252065492760214 df(x) [-0.60563051 0.78094083] it: 33 x: [ 0.71651958 -0.37670261] f(x) 1.0155201795513493 df(x) [-0.59568412 0.76811528] it: 34 x: [ 0.72247642 -0.38438376] f(x) 1.0061493595591502 df(x) [-0.58590108 0.75550037] it: 35 x: [ 0.72833543 -0.39193876] f(x) 0.9970838097378858 df(x) [-0.57627871 0.74309264] it: 36 x: [ 0.73409821 -0.39936969] f(x) 0.9883135853999687 df(x) [-0.56681437 0.73088868] it: 37 x: [ 0.73976636 -0.40667858] f(x) 0.9798290658226809 df(x) [-0.55750547 0.71888515] it: 38 x: [ 0.74534141 -0.41386743] f(x) 0.971620943694476 df(x) [-0.54834944 0.70707875] it: 39 x: [ 0.75082491 -0.42093822] f(x) 0.9636802149050848 df(x) [-0.53934379 0.69546626] it: 40 x: [ 0.75621835 -0.42789288] f(x) 0.9559981686682235 df(x) [-0.53048604 0.68404448] it: 41 x: [ 0.76152321 -0.43473332] f(x) 0.9485663779660766 df(x) [-0.52177376 0.67281028] it: 42 x: [ 0.76674094 -0.44146143] f(x) 0.9413766903050595 df(x) [-0.51320457 0.66176058] it: 43 x: [ 0.77187299 -0.44807903] f(x) 0.9344212187727353 df(x) [-0.50477611 0.65089236] it: 44 x: [ 0.77692075 -0.45458796] f(x) 0.9276923333860602 df(x) [-0.49648607 0.64020262] it: 45 x: [ 0.78188561 -0.46098998] f(x) 0.9211826527214803 df(x) [-0.48833218 0.62968845] it: 46 x: [ 0.78676893 -0.46728687] f(x) 0.9148850358176875 df(x) [-0.4803122 0.61934695] it: 47 x: [ 0.79157205 -0.47348034] f(x) 0.908792574342161 df(x) [-0.47242394 0.60917529] it: 48 x: [ 0.79629629 -0.47957209] f(x) 0.9028985850128922 df(x) [-0.46466523 0.59917068] it: 49 x: [ 0.80094295 -0.48556379] f(x) 0.8971966022669888 df(x) [-0.45703394 0.58933038] it: 50 x: [ 0.80551329 -0.4914571 ] f(x) 0.8916803711681088 df(x) [-0.44952798 0.57965169] it: 51 x: [ 0.81000857 -0.49725362] f(x) 0.8863438405449473 df(x) [-0.44214529 0.57013196] it: 52 x: [ 0.81443002 -0.50295494] f(x) 0.8811811563532495 df(x) [-0.43488385 0.56076857] it: 53 x: [ 0.81877886 -0.50856262] f(x) 0.8761866552540661 df(x) [-0.42774167 0.55155895] it: 54 x: [ 0.82305627 -0.51407821] f(x) 0.8713548584012079 df(x) [-0.42071678 0.54250059] it: 55 x: [ 0.82726344 -0.51950322] f(x) 0.8666804654310859 df(x) [-0.41380727 0.533591 ] it: 56 x: [ 0.83140151 -0.52483913] f(x) 0.8621583486483406 df(x) [-0.40701123 0.52482773] it: 57 x: [ 0.83547163 -0.5300874 ] f(x) 0.8577835474008856 df(x) [-0.4003268 0.51620838] it: 58 x: [ 0.83947489 -0.53524949] f(x) 0.8535512626381914 df(x) [-0.39375215 0.50773058] it: 59 x: [ 0.84341242 -0.54032679] f(x) 0.8494568516468458 df(x) [-0.38728548 0.49939202] it: 60 x: [ 0.84728527 -0.54532071] f(x) 0.8454958229576087 df(x) [-0.38092502 0.49119041] it: 61 x: [ 0.85109452 -0.55023262] f(x) 0.841663831418381 df(x) [-0.37466901 0.48312349] it: 62 x: [ 0.85484121 -0.55506385] f(x) 0.8379566734276764 df(x) [-0.36851575 0.47518906] it: 63 x: [ 0.85852637 -0.55981574] f(x) 0.8343702823233756 df(x) [-0.36246354 0.46738493] it: 64 x: [ 0.862151 -0.56448959] f(x) 0.8309007239216942 df(x) [-0.35651073 0.45970898] it: 65 x: [ 0.86571611 -0.56908668] f(x) 0.8275441922014807 df(x) [-0.35065568 0.45215908] it: 66 x: [ 0.86922267 -0.57360827] f(x) 0.8242970051291023 df(x) [-0.34489679 0.44473319] it: 67 x: [ 0.87267164 -0.5780556 ] f(x) 0.8211556006193462 df(x) [-0.33923248 0.43742924] it: 68 x: [ 0.87606396 -0.5824299 ] f(x) 0.8181165326278955 df(x) [-0.3336612 0.43024526] it: 69 x: [ 0.87940057 -0.58673235] f(x) 0.8151764673711044 df(x) [-0.32818142 0.42317925] it: 70 x: [ 0.88268239 -0.59096414] f(x) 0.812332179668919 df(x) [-0.32279163 0.4162293 ] it: 71 x: [ 0.8859103 -0.59512644] f(x) 0.8095805494069315 df(x) [-0.31749036 0.40939348] it: 72 x: [ 0.88908521 -0.59922037] f(x) 0.8069185581136922 df(x) [-0.31227615 0.40266993] it: 73 x: [ 0.89220797 -0.60324707] f(x) 0.8043432856495194 df(x) [-0.30714758 0.3960568 ] it: 74 x: [ 0.89527944 -0.60720764] f(x) 0.8018519070031762 df(x) [-0.30210323 0.38955228] it: 75 x: [ 0.89830048 -0.61110316] f(x) 0.7994416891929038 df(x) [-0.29714173 0.38315459] it: 76 x: [ 0.90127189 -0.61493471] f(x) 0.7971099882684048 df(x) [-0.29226171 0.37686196] it: 77 x: [ 0.90419451 -0.61870333] f(x) 0.7948542464104957 df(x) [-0.28746184 0.37067268] it: 78 x: [ 0.90706913 -0.62241005] f(x) 0.7926719891252413 df(x) [-0.2827408 0.36458505] it: 79 x: [ 0.90989654 -0.6260559 ] f(x) 0.7905608225294941 df(x) [-0.27809729 0.3585974 ] it: 80 x: [ 0.91267751 -0.62964188] f(x) 0.7885184307248635 df(x) [-0.27353004 0.35270808] it: 81 x: [ 0.91541281 -0.63316896] f(x) 0.7865425732572318 df(x) [-0.2690378 0.34691549] it: 82 x: [ 0.91810319 -0.63663811] f(x) 0.7846310826590295 df(x) [-0.26461934 0.34121803] it: 83 x: [ 0.92074938 -0.64005029] f(x) 0.7827818620715778 df(x) [-0.26027345 0.33561413] it: 84 x: [ 0.92335212 -0.64340643] f(x) 0.7809928829448838 df(x) [-0.25599892 0.33010228] it: 85 x: [ 0.92591211 -0.64670746] f(x) 0.7792621828123717 df(x) [-0.2517946 0.32468094] it: 86 x: [ 0.92843005 -0.64995427] f(x) 0.7775878631381041 df(x) [-0.24765933 0.31934864] it: 87 x: [ 0.93090664 -0.65314775] f(x) 0.7759680872341352 df(x) [-0.24359197 0.31410392] it: 88 x: [ 0.93334256 -0.65628879] f(x) 0.7744010782457075 df(x) [-0.23959141 0.30894532] it: 89 x: [ 0.93573848 -0.65937825] f(x) 0.7728851172020864 df(x) [-0.23565655 0.30387145] it: 90 x: [ 0.93809504 -0.66241696] f(x) 0.7714185411308905 df(x) [-0.23178632 0.29888091] it: 91 x: [ 0.94041291 -0.66540577] f(x) 0.769999741233852 df(x) [-0.22797965 0.29397233] it: 92 x: [ 0.9426927 -0.66834549] f(x) 0.7686271611220031 df(x) [-0.22423549 0.28914437] it: 93 x: [ 0.94493506 -0.67123694] f(x) 0.7672992951083563 df(x) [-0.22055283 0.28439569] it: 94 x: [ 0.94714059 -0.67408089] f(x) 0.7660146865562019 df(x) [-0.21693064 0.279725 ] it: 95 x: [ 0.94930989 -0.67687814] f(x) 0.7647719262812129 df(x) [-0.21336795 0.27513102] it: 96 x: [ 0.95144357 -0.67962945] f(x) 0.7635696510056044 df(x) [-0.20986376 0.27061249] it: 97 x: [ 0.95354221 -0.68233558] f(x) 0.7624065418626499 df(x) [-0.20641713 0.26616817] it: 98 x: [ 0.95560638 -0.68499726] f(x) 0.761281322949919 df(x) [-0.2030271 0.26179684] it: 99 x: [ 0.95763665 -0.68761523] f(x) 0.7601927599296412 df(x) [-0.19969275 0.2574973 ] it: 100 x: [ 0.95963358 -0.6901902 ] f(x) 0.7591396586746674 df(x) [-0.19641315 0.25326837] it: 101 x: [ 0.96159771 -0.69272288] f(x) 0.7581208639585436 df(x) [-0.19318742 0.24910889] it: 102 x: [ 0.96352959 -0.69521397] f(x) 0.7571352581882537 df(x) [-0.19001466 0.24501772] it: 103 x: [ 0.96542973 -0.69766415] f(x) 0.7561817601782472 df(x) [-0.18689402 0.24099375] it: 104 x: [ 0.96729867 -0.70007409] f(x) 0.7552593239644063 df(x) [-0.18382462 0.23703586] it: 105 x: [ 0.96913692 -0.70244445] f(x) 0.7543669376566473 df(x) [-0.18080563 0.23314297] it: 106 x: [ 0.97094498 -0.70477588] f(x) 0.7535036223289023 df(x) [-0.17783622 0.22931402] it: 107 x: [ 0.97272334 -0.70706902] f(x) 0.7526684309452616 df(x) [-0.17491558 0.22554795] it: 108 x: [ 0.97447249 -0.7093245 ] f(x) 0.7518604473210977 df(x) [-0.17204291 0.22184373] it: 109 x: [ 0.97619292 -0.71154293] f(x) 0.7510787851180333 df(x) [-0.16921742 0.21820035] it: 110 x: [ 0.9778851 -0.71372494] f(x) 0.7503225868716491 df(x) [-0.16643832 0.2146168 ] it: 111 x: [ 0.97954948 -0.71587111] f(x) 0.7495910230508678 df(x) [-0.16370487 0.21109211] it: 112 x: [ 0.98118653 -0.71798203] f(x) 0.748883291147977 df(x) [-0.16101632 0.2076253 ] it: 113 x: [ 0.98279669 -0.72005828] f(x) 0.7481986147982984 df(x) [-0.15837191 0.20421543] it: 114 x: [ 0.98438041 -0.72210043] f(x) 0.7475362429285343 df(x) [-0.15577094 0.20086156] it: 115 x: [ 0.98593812 -0.72410905] f(x) 0.7468954489328598 df(x) [-0.15321268 0.19756277] it: 116 x: [ 0.98747025 -0.72608468] f(x) 0.7462755298758519 df(x) [-0.15069644 0.19431815] it: 117 x: [ 0.98897721 -0.72802786] f(x) 0.7456758057213878 df(x) [-0.14822152 0.19112683] it: 118 x: [ 0.99045943 -0.72993913] f(x) 0.7450956185866616 df(x) [-0.14578725 0.18798791] it: 119 x: [ 0.9919173 -0.73181901] f(x) 0.7445343320205025 df(x) [-0.14339296 0.18490055] it: 120 x: [ 0.99335123 -0.73366801] f(x) 0.7439913303052033 df(x) [-0.14103799 0.18186389] it: 121 x: [ 0.99476161 -0.73548665] f(x) 0.7434660177810942 df(x) [-0.13872169 0.17887711] it: 122 x: [ 0.99614883 -0.73727542] f(x) 0.7429578181931167 df(x) [-0.13644344 0.17593937] it: 123 x: [ 0.99751326 -0.73903482] f(x) 0.7424661740586878 df(x) [-0.1342026 0.17304988] it: 124 x: [ 0.99885529 -0.74076531] f(x) 0.7419905460561534 df(x) [-0.13199856 0.17020785] it: 125 x: [ 1.00017527 -0.74246739] f(x) 0.741530412433167 df(x) [-0.12983073 0.16741249] it: 126 x: [ 1.00147358 -0.74414152] f(x) 0.7410852684343393 df(x) [-0.12769849 0.16466305] it: 127 x: [ 1.00275056 -0.74578815] f(x) 0.740654625747534 df(x) [-0.12560127 0.16195875] it: 128 x: [ 1.00400658 -0.74740774] f(x) 0.7402380119682015 df(x) [-0.1235385 0.15929887] it: 129 x: [ 1.00524196 -0.74900072] f(x) 0.7398349700811615 df(x) [-0.1215096 0.15668267] it: 130 x: [ 1.00645706 -0.75056755] f(x) 0.7394450579592708 df(x) [-0.11951402 0.15410944] it: 131 x: [ 1.0076522 -0.75210865] f(x) 0.739067847878418 df(x) [-0.11755122 0.15157847] it: 132 x: [ 1.00882771 -0.75362443] f(x) 0.7387029260483218 df(x) [-0.11562065 0.14908907] it: 133 x: [ 1.00998392 -0.75511532] f(x) 0.7383498921586132 df(x) [-0.11372179 0.14664055] it: 134 x: [ 1.01112113 -0.75658173] f(x) 0.7380083589397048 df(x) [-0.11185412 0.14423224] it: 135 x: [ 1.01223968 -0.75802405] f(x) 0.737677951737965 df(x) [-0.11001712 0.14186349] it: 136 x: [ 1.01333985 -0.75944268] f(x) 0.7373583081047321 df(x) [-0.10821028 0.13953364] it: 137 x: [ 1.01442195 -0.76083802] f(x) 0.7370490773987175 df(x) [-0.10643312 0.13724205] it: 138 x: [ 1.01548628 -0.76221044] f(x) 0.7367499204013606 df(x) [-0.10468515 0.13498809] it: 139 x: [ 1.01653313 -0.76356032] f(x) 0.7364605089447136 df(x) [-0.10296589 0.13277116] it: 140 x: [ 1.01756279 -0.76488803] f(x) 0.7361805255514501 df(x) [-0.10127486 0.13059063] it: 141 x: [ 1.01857554 -0.76619394] f(x) 0.7359096630865997 df(x) [-0.0996116 0.12844591] it: 142 x: [ 1.01957166 -0.7674784 ] f(x) 0.7356476244206281 df(x) [-0.09797566 0.12633642] it: 143 x: [ 1.02055141 -0.76874176] f(x) 0.735394122103495 df(x) [-0.09636658 0.12426157] it: 144 x: [ 1.02151508 -0.76998438] f(x) 0.7351488780493258 df(x) [-0.09478394 0.1222208 ] it: 145 x: [ 1.02246292 -0.77120659] f(x) 0.73491162323136 df(x) [-0.09322728 0.12021354] it: 146 x: [ 1.02339519 -0.77240872] f(x) 0.7346820973868347 df(x) [-0.09169619 0.11823925] it: 147 x: [ 1.02431215 -0.77359111] f(x) 0.734460048731483 df(x) [-0.09019025 0.11629739] it: 148 x: [ 1.02521405 -0.77475409] f(x) 0.7342452336833318 df(x) [-0.08870903 0.11438741] it: 149 x: [ 1.02610115 -0.77589796] f(x) 0.7340374165955008 df(x) [-0.08725215 0.1125088 ] it: 150 x: [ 1.02697367 -0.77702305] f(x) 0.7338363694977003 df(x) [-0.08581919 0.11066105] it: 151 x: [ 1.02783186 -0.77812966] f(x) 0.7336418718461554 df(x) [-0.08440976 0.10884364] it: 152 x: [ 1.02867596 -0.7792181 ] f(x) 0.7334537102816749 df(x) [-0.08302348 0.10705608] it: 153 x: [ 1.02950619 -0.78028866] f(x) 0.7332716783956001 df(x) [-0.08165997 0.10529788] it: 154 x: [ 1.03032279 -0.78134164] f(x) 0.7330955765033814 df(x) [-0.08031886 0.10356855] it: 155 x: [ 1.03112598 -0.78237732] f(x) 0.7329252114255272 df(x) [-0.07899976 0.10186762] it: 156 x: [ 1.03191598 -0.783396 ] f(x) 0.7327603962756922 df(x) [-0.07770233 0.10019463] it: 157 x: [ 1.032693 -0.78439794] f(x) 0.7326009502556672 df(x) [-0.07642621 0.09854911] it: 158 x: [ 1.03345726 -0.78538344] f(x) 0.7324466984570472 df(x) [-0.07517105 0.09693062] it: 159 x: [ 1.03420897 -0.78635274] f(x) 0.7322974716693624 df(x) [-0.0739365 0.09533871] it: 160 x: [ 1.03494834 -0.78730613] f(x) 0.7321531061944574 df(x) [-0.07272223 0.09377294] it: 161 x: [ 1.03567556 -0.78824386] f(x) 0.7320134436669185 df(x) [-0.0715279 0.09223289] it: 162 x: [ 1.03639084 -0.78916619] f(x) 0.7318783308803513 df(x) [-0.07035318 0.09071813] it: 163 x: [ 1.03709437 -0.79007337] f(x) 0.7317476196193158 df(x) [-0.06919775 0.08922825] it: 164 x: [ 1.03778635 -0.79096565] f(x) 0.7316211664967391 df(x) [-0.06806131 0.08776284] it: 165 x: [ 1.03846696 -0.79184328] f(x) 0.7314988327966226 df(x) [-0.06694352 0.08632149] it: 166 x: [ 1.0391364 -0.79270649] f(x) 0.7313804843218733 df(x) [-0.0658441 0.08490382] it: 167 x: [ 1.03979484 -0.79355553] f(x) 0.7312659912470938 df(x) [-0.06476272 0.08350942] it: 168 x: [ 1.04044247 -0.79439063] f(x) 0.7311552279761672 df(x) [-0.06369911 0.08213793] it: 169 x: [ 1.04107946 -0.79521201] f(x) 0.7310480730044796 df(x) [-0.06265297 0.08078897] it: 170 x: [ 1.04170599 -0.7960199 ] f(x) 0.7309444087856346 df(x) [-0.06162401 0.07946215] it: 171 x: [ 1.04232223 -0.79681452] f(x) 0.7308441216025062 df(x) [-0.06061194 0.07815713] Step size ||dx|| less than dxtol = 0.001 Estimating model parameters: x = normalized mileage y = normalized price Seek relationship y = b + m * x b = 1.04232 m = -0.796815 Norm of initial error is 1.71569 Norm of total error is 0.730844 Graphics saved in "ford_formula.png" ford_gradient2: Normal end of execution.