function v = testNN( w ) % % v = testNN( w ) % % returns the falue of the empirical error of the NN (or, in fact, % whatever function is encoded in 'roughNN()') with the weights contained % in w. % % The empirical error is estimated over a 288-strong input/output pair % ( X , y ), with X containing only one feature, that is hard-coded into % the function so that its gradient can be easily computed by ADiGator. % % Input: % % - w is the real vector containing the weights of the NN, see roughNN % for details % % Output: % % - the MSE of the error done by roughNN() on the given test set % %{ % ======================================= % Author: Antonio Frangioni % Date: 28-08-22 % Version 1.00 % Copyright Antonio Frangioni % ======================================= %} N = 288; % size % inputs X = [ 0.0000000000000000 0.0034843205574913 0.0069686411149826 0.0104529616724739 0.0139372822299652 0.0174216027874564 0.0209059233449477 0.0243902439024390 0.0278745644599303 0.0313588850174216 0.0348432055749129 0.0383275261324042 0.0418118466898955 0.0452961672473868 0.0487804878048781 0.0522648083623693 0.0557491289198606 0.0592334494773519 0.0627177700348432 0.0662020905923345 0.0696864111498258 0.0731707317073171 0.0766550522648084 0.0801393728222996 0.0836236933797909 0.0871080139372822 0.0905923344947735 0.0940766550522648 0.0975609756097561 0.1010452961672474 0.1045296167247387 0.1080139372822300 0.1114982578397213 0.1149825783972125 0.1184668989547038 0.1219512195121951 0.1254355400696864 0.1289198606271777 0.1324041811846690 0.1358885017421603 0.1393728222996516 0.1428571428571428 0.1463414634146341 0.1498257839721254 0.1533101045296167 0.1567944250871080 0.1602787456445993 0.1637630662020906 0.1672473867595819 0.1707317073170732 0.1742160278745645 0.1777003484320558 0.1811846689895470 0.1846689895470383 0.1881533101045296 0.1916376306620209 0.1951219512195122 0.1986062717770035 0.2020905923344948 0.2055749128919861 0.2090592334494774 0.2125435540069686 0.2160278745644599 0.2195121951219512 0.2229965156794425 0.2264808362369338 0.2299651567944251 0.2334494773519164 0.2369337979094077 0.2404181184668990 0.2439024390243902 0.2473867595818815 0.2508710801393728 0.2543554006968641 0.2578397212543554 0.2613240418118467 0.2648083623693380 0.2682926829268293 0.2717770034843205 0.2752613240418119 0.2787456445993031 0.2822299651567944 0.2857142857142857 0.2891986062717770 0.2926829268292683 0.2961672473867596 0.2996515679442509 0.3031358885017422 0.3066202090592334 0.3101045296167247 0.3135888501742160 0.3170731707317073 0.3205574912891986 0.3240418118466899 0.3275261324041812 0.3310104529616725 0.3344947735191638 0.3379790940766551 0.3414634146341464 0.3449477351916376 0.3484320557491289 0.3519163763066202 0.3554006968641115 0.3588850174216028 0.3623693379790941 0.3658536585365854 0.3693379790940767 0.3728222996515679 0.3763066202090593 0.3797909407665505 0.3832752613240418 0.3867595818815331 0.3902439024390244 0.3937282229965157 0.3972125435540070 0.4006968641114982 0.4041811846689896 0.4076655052264808 0.4111498257839721 0.4146341463414634 0.4181184668989547 0.4216027874564460 0.4250871080139373 0.4285714285714285 0.4320557491289199 0.4355400696864111 0.4390243902439024 0.4425087108013937 0.4459930313588850 0.4494773519163763 0.4529616724738676 0.4564459930313589 0.4599303135888502 0.4634146341463415 0.4668989547038327 0.4703832752613241 0.4738675958188153 0.4773519163763066 0.4808362369337979 0.4843205574912892 0.4878048780487805 0.4912891986062718 0.4947735191637631 0.4982578397212544 0.5017421602787456 0.5052264808362370 0.5087108013937283 0.5121951219512195 0.5156794425087108 0.5191637630662020 0.5226480836236933 0.5261324041811847 0.5296167247386759 0.5331010452961673 0.5365853658536586 0.5400696864111498 0.5435540069686411 0.5470383275261324 0.5505226480836236 0.5540069686411150 0.5574912891986064 0.5609756097560976 0.5644599303135889 0.5679442508710801 0.5714285714285714 0.5749128919860627 0.5783972125435540 0.5818815331010453 0.5853658536585367 0.5888501742160279 0.5923344947735192 0.5958188153310104 0.5993031358885017 0.6027874564459930 0.6062717770034843 0.6097560975609756 0.6132404181184670 0.6167247386759582 0.6202090592334495 0.6236933797909407 0.6271777003484320 0.6306620209059233 0.6341463414634146 0.6376306620209059 0.6411149825783973 0.6445993031358885 0.6480836236933798 0.6515679442508711 0.6550522648083623 0.6585365853658536 0.6620209059233449 0.6655052264808362 0.6689895470383276 0.6724738675958188 0.6759581881533101 0.6794425087108014 0.6829268292682926 0.6864111498257840 0.6898954703832753 0.6933797909407666 0.6968641114982579 0.7003484320557491 0.7038327526132404 0.7073170731707317 0.7108013937282229 0.7142857142857143 0.7177700348432056 0.7212543554006969 0.7247386759581882 0.7282229965156795 0.7317073170731707 0.7351916376306620 0.7386759581881532 0.7421602787456446 0.7456445993031359 0.7491289198606272 0.7526132404181185 0.7560975609756098 0.7595818815331010 0.7630662020905923 0.7665505226480837 0.7700348432055749 0.7735191637630662 0.7770034843205575 0.7804878048780488 0.7839721254355401 0.7874564459930313 0.7909407665505226 0.7944250871080140 0.7979094076655052 0.8013937282229965 0.8048780487804879 0.8083623693379791 0.8118466898954704 0.8153310104529616 0.8188153310104529 0.8222996515679443 0.8257839721254355 0.8292682926829268 0.8327526132404182 0.8362369337979094 0.8397212543554007 0.8432055749128919 0.8466898954703833 0.8501742160278746 0.8536585365853658 0.8571428571428572 0.8606271777003485 0.8641114982578397 0.8675958188153310 0.8710801393728222 0.8745644599303136 0.8780487804878049 0.8815331010452961 0.8850174216027875 0.8885017421602788 0.8919860627177700 0.8954703832752613 0.8989547038327526 0.9024390243902439 0.9059233449477352 0.9094076655052264 0.9128919860627178 0.9163763066202091 0.9198606271777003 0.9233449477351916 0.9268292682926830 0.9303135888501742 0.9337979094076655 0.9372822299651568 0.9407665505226481 0.9442508710801394 0.9477351916376306 0.9512195121951219 0.9547038327526133 0.9581881533101045 0.9616724738675958 0.9651567944250871 0.9686411149825784 0.9721254355400697 0.9756097560975610 0.9790940766550522 0.9825783972125436 0.9860627177700348 0.9895470383275261 0.9930313588850174 0.9965156794425087 1.0000000000000000 ]; % outputs y = [ 0.096798166000 0.143459740000 0.208317990000 -0.038018393000 0.148793230000 0.512799550000 -0.120798510000 0.177158750000 0.083816932000 0.000756494710 0.006887211700 0.213572840000 0.493783350000 0.035274935000 0.243769090000 0.087417919000 0.476797600000 0.271438160000 0.178877000000 0.302770820000 0.219586200000 0.397548740000 0.215089090000 0.086588415000 0.304056660000 0.513946170000 0.113409000000 0.270068060000 0.471061630000 0.046628439000 0.443157150000 0.477349380000 0.411852220000 0.280063680000 0.410626170000 0.442082230000 0.585090200000 0.561297160000 0.426446760000 0.739395540000 0.506414480000 0.409925250000 0.483992110000 0.696575460000 0.615166110000 0.737349800000 0.632542540000 1.013287300000 0.408451860000 0.613835270000 0.681370910000 0.724988310000 0.947395900000 0.779004190000 0.745667780000 0.789666080000 0.908202240000 0.707755840000 0.894037990000 0.606428220000 0.843615470000 0.727874550000 0.784348430000 0.937189250000 0.737952220000 0.769620390000 0.701166820000 0.604155740000 0.924881630000 1.130475900000 0.936493470000 0.935667120000 0.819976810000 1.219958800000 0.949769640000 1.185254200000 1.048672000000 0.957402250000 1.160938800000 1.147023700000 0.983283410000 1.194051400000 1.265849000000 0.987167510000 0.956395550000 1.052589900000 1.041239900000 1.105649800000 0.941725790000 1.082398200000 1.127045200000 0.990602660000 0.980803460000 0.763155870000 0.768571290000 0.718186990000 0.743430540000 0.899271220000 0.672586160000 1.243876900000 1.009891400000 0.580803050000 0.709665650000 0.858643730000 0.609667610000 0.789520360000 1.014111700000 0.817911210000 0.824534040000 0.676622590000 0.735885580000 0.609022520000 0.859070820000 0.729465540000 0.907844320000 0.969161960000 0.938595000000 0.765435590000 0.688922170000 0.574990840000 0.770659830000 0.891310740000 0.690971710000 0.711048000000 0.824634750000 0.857126400000 0.510549630000 0.748820900000 0.744129450000 0.688191070000 0.841053850000 0.648943870000 0.576231820000 0.738291460000 0.762720980000 0.658108930000 0.807248650000 0.457323660000 0.521077750000 0.218860160000 0.755337450000 0.525976310000 0.634217410000 0.821176590000 0.675074910000 0.599022390000 0.535501720000 0.624415250000 0.748616920000 0.428448630000 0.643341520000 0.768654000000 0.435878620000 0.747073780000 0.746823840000 0.509674810000 0.413964070000 0.702246380000 0.756141550000 0.719368010000 0.744580020000 0.450466060000 0.713008860000 0.536099090000 0.536595750000 0.385158420000 0.781369420000 0.640457830000 0.762680940000 0.836824400000 0.437730550000 0.703038130000 0.603083350000 0.740709380000 0.768477480000 0.724346000000 0.477804350000 0.580883120000 0.639146320000 1.073252500000 0.783713950000 0.948384040000 0.663369380000 0.634232460000 0.696070360000 0.526957260000 0.794798220000 0.587766610000 0.408654360000 0.749043110000 0.387306230000 0.350567280000 0.675537030000 0.495158740000 0.507149810000 0.625867220000 0.583647850000 0.630796900000 0.712643020000 0.504536230000 0.504499780000 0.381836730000 0.647114640000 0.814415180000 0.618741310000 0.808727320000 0.824111580000 0.901249190000 0.910594790000 0.668334220000 0.652467030000 0.797380800000 0.699257390000 1.025428600000 1.022629700000 0.837597600000 0.766407010000 0.913657810000 0.744506570000 0.829397600000 0.773018020000 0.872046570000 1.028215500000 0.972177970000 1.033239200000 0.724398150000 0.887466840000 0.710846670000 0.912868530000 0.899725750000 1.039970600000 1.003988400000 0.929601600000 0.747319110000 0.742110530000 0.495198080000 0.724133980000 0.546209190000 0.904975290000 0.886555800000 0.756973180000 0.663691170000 0.725449860000 0.927661000000 0.871628610000 0.583857660000 0.657822350000 0.445564610000 0.654537190000 0.685853290000 0.690412010000 0.306045040000 0.591718740000 0.366728870000 0.420310670000 0.575582700000 0.482907520000 0.394669790000 0.491601190000 0.627475460000 0.270874460000 0.144405290000 0.155561360000 0.171715630000 0.196642150000 0.368318080000 -0.046015957000 0.287831380000 0.121822920000 0.390236930000 0.084253654000 0.201575720000 0.048222309000 0.075602342000 0.128340910000 0.123106810000 0.069294711000 0.308367180000 0.213239800000 0.401070710000 0.073746174000 0.268322470000 -0.213145400000 0.191332180000 0.145485930000 0.028213679000 0.183566020000 0.206160990000 ]; % compute MSE of prediction on all ( X( i ) , y( i ) ) v = 0; % return value for i = 1 : N % for all input / output pairs v = v + ( y( i ) - roughNN( w , X( i ) ) )^2; end v = v / 2; end