Cody

# Problem 1473. Legendre polynomials

Solution 1961682

Submitted on 6 Oct 2019 by Nikolaos Nikolaou
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
user_solution = fileread('legendrePoly.m'); assert(isempty(strfind(user_solution,'regexp'))); assert(isempty(strfind(user_solution,'2str'))); assert(isempty(strfind(user_solution,'str2'))); assert(isempty(strfind(user_solution,'interp'))); assert(isempty(strfind(user_solution,'printf'))); assert(isempty(strfind(user_solution,'assert')));

2   Pass
n = 0; P_correct = [1]/1; assert(isequal(round(legendrePoly(n)*1),round(P_correct*1)));

P = 1 P = 1

3   Pass
n = 1; P_correct = [1 0]/1; assert(isequal(round(legendrePoly(n)*1),round(P_correct*1)));

P = 0 1 1 0 P = 1 0

4   Pass
n = 2; P_correct = [3 0 -1]/2; assert(isequal(round(legendrePoly(n)*2),round(P_correct*2)));

P = 0 0 1.0000 0 1.0000 0 1.5000 0 -0.5000 P = 1.5000 0 -0.5000

5   Pass
n = 3; P_correct = [5 0 -3 0]/2; assert(isequal(round(legendrePoly(n)*2),round(P_correct*2)));

P = 0 0 0 1.0000 0 0 1.0000 0 0 1.5000 0 -0.5000 2.5000 0 -1.5000 0 P = 2.5000 0 -1.5000 0

6   Pass
n = 4; P_correct = [35 0 -30 0 3]/8; assert(isequal(round(legendrePoly(n)*8),round(P_correct*8)));

P = 0 0 0 0 1.0000 0 0 0 1.0000 0 0 0 1.5000 0 -0.5000 0 2.5000 0 -1.5000 0 4.3750 0 -3.7500 0 0.3750 P = 4.3750 0 -3.7500 0 0.3750

7   Pass
n = 5; P_correct = [63 0 -70 0 15 0]/8; assert(isequal(round(legendrePoly(n)*8),round(P_correct*8)));

P = 0 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.5000 0 -0.5000 0 0 2.5000 0 -1.5000 0 0 4.3750 0 -3.7500 0 0.3750 7.8750 0 -8.7500 0 1.8750 0 P = 7.8750 0 -8.7500 0 1.8750 0

8   Pass
n = 6; P_correct = [231 0 -315 0 105 0 -5]/16; assert(isequal(round(legendrePoly(n)*16),round(P_correct*16)));

P = 0 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.5000 0 -0.5000 0 0 0 2.5000 0 -1.5000 0 0 0 4.3750 0 -3.7500 0 0.3750 0 7.8750 0 -8.7500 0 1.8750 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 P = 14.4375 0 -19.6875 0 6.5625 0 -0.3125

9   Pass
n = 7; P_correct = [429 0 -693 0 315 0 -35 0]/16; assert(isequal(round(legendrePoly(n)*16),round(P_correct*16)));

P = 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 1.5000 0 -0.5000 0 0 0 0 2.5000 0 -1.5000 0 0 0 0 4.3750 0 -3.7500 0 0.3750 0 0 7.8750 0 -8.7500 0 1.8750 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 P = 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0

10   Pass
n = 8; P_correct = [6435 0 -12012 0 6930 0 -1260 0 35]/128; assert(isequal(round(legendrePoly(n)*128),round(P_correct*128)));

P = 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 1.5000 0 -0.5000 0 0 0 0 0 2.5000 0 -1.5000 0 0 0 0 0 4.3750 0 -3.7500 0 0.3750 0 0 0 7.8750 0 -8.7500 0 1.8750 0 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734 P = 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734

11   Pass
n = 9; P_correct = [12155 0 -25740 0 18018 0 -4620 0 315 0]/128; assert(isequal(round(legendrePoly(n)*128),round(P_correct*128)));

P = 0 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 0 1.5000 0 -0.5000 0 0 0 0 0 0 2.5000 0 -1.5000 0 0 0 0 0 0 4.3750 0 -3.7500 0 0.3750 0 0 0 0 7.8750 0 -8.7500 0 1.8750 0 0 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 0 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 0 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734 94.9609 0 -201.0938 0 140.7656 0 -36.0938 0 2.4609 0 P = 94.9609 0 -201.0938 0 140.7656 0 -36.0938 0 2.4609 0

12   Pass
n = 10; P_correct = [46189 0 -109395 0 90090 0 -30030 0 3465 0 -63]/256; assert(isequal(round(legendrePoly(n)*256),round(P_correct*256)));

P = 0 0 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 0 0 1.5000 0 -0.5000 0 0 0 0 0 0 0 2.5000 0 -1.5000 0 0 0 0 0 0 0 4.3750 0 -3.7500 0 0.3750 0 0 0 0 0 7.8750 0 -8.7500 0 1.8750 0 0 0 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 0 0 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 0 0 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734 0 94.9609 0 -201.0938 0 140.7656 0 -36.0938 0 2.4609 0 180.4258 0 -427.3242 0 351.9141 0 -117.3047 0 13.5352 0 -0.2461 P = 180.4258 0 -427.3242 0 351.9141 0 -117.3047 0 13.5352 0 -0.2461

13   Pass
n = 11; P_correct = [88179 0 -230945 0 218790 0 -90090 0 15015 0 -693 0]/256; assert(isequal(round(legendrePoly(n)*256),round(P_correct*256)));

P = 0 0 0 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 0 0 0 1.5000 0 -0.5000 0 0 0 0 0 0 0 0 2.5000 0 -1.5000 0 0 0 0 0 0 0 0 4.3750 0 -3.7500 0 0.3750 0 0 0 0 0 0 7.8750 0 -8.7500 0 1.8750 0 0 0 0 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 0 0 0 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 0 0 0 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734 0 0 94.9609 0 -201.0938 0 140.7656 0 -36.0938 0 2.4609 0 0 180.4258 0 -427.3242 0 351.9141 0 -117.3047 0 13.5352 0 -0.2461 344.4492 0 -902.1289 0 854.6484 0 -351.9141 0 58.6523 0 -2.7070 0 P = 344.4492 0 -902.1289 0 854.6484 0 -351.9141 0 58.6523 0 -2.7070 0

14   Pass
n = 12; P_correct = [676039 0 -1939938 0 2078505 0 -1021020 0 225225 0 -18018 0 231]/1024; assert(isequal(round(legendrePoly(n)*1024),round(P_correct*1024)));

P = 1.0e+03 * 0 0 0 0 0 0 0 0 0 0 0 0 0.0010 0 0 0 0 0 0 0 0 0 0 0 0.0010 0 0 0 0 0 0 0 0 0 0 0 0.0015 0 -0.0005 0 0 0 0 0 0 0 0 0 0.0025 0 -0.0015 0 0 0 0 0 0 0 0 0 0.0044 0 -0.0037 0 0.0004 0 0 0 0 0 0 0 0.0079 0 -0.0088 0 0.0019 0 0 0 0 0 0 0 0.0144 0 -0.0197 0 0.0066 0 -0.0003 0 0 0 0 0 0.0268 0 -0.0433 0 0.0197 0 -0.0022 0 0 0 0 0 0.0503 0 -0.0938 0 0.0541 0 -0.0098 0 0.0003 0 0 0 0.0950 0 -0.2011 0 0.1408 0 -0.0361 0 0.0025 0 0 0 0.1804 0 -0.4273 0 0.3519 0 -0.1173 0 0.0135 0 -0.0002 0 0.3444 0 -0.9021 0 0.8546 0 -0.3519 0 0.0587 0 -0.0027 0 0.6602 0 -1.8945 0 2.0298 0 -0.9971 0 0.2199 0 -0.0176 0 0.0002 P = 1.0e+03 * 0.6602 0 -1.8945 0 2.0298 0 -0.9971 0 0.2199 0 -0.0176 0 0.0002

15   Pass
n = 13; P_correct = [1300075 0 -4056234 0 4849845 0 -2771340 0 765765 0 -90090 0 3003 0]/1024; assert(isequal(round(legendrePoly(n)*1024),round(P_correct*1024)));

P = 1.0e+03 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0010 0 0 0 0 0 0 0 0 0 0 0 0 0.0010 0 0 0 0 0 0 0 0 0 0 0 0 0.0015 0 -0.0005 0 0 0 0 0 0 0 0 0 0 0.0025 0 -0.0015 0 0 0 0 0 0 0 0 0 0 0.0044 0 -0.0037 0 0.0004 0 0 0 0 0 0 0 0 0.0079 0 -0.0088 0 0.0019 0 0 0 0 0 0 0 0 0.0144 0 -0.0197 0 0.0066 0 -0.0003 0 0 0 0 0 0 0.0268 0 -0.0433 0 0.0197 0 -0.0022 0 0 0 0 0 0 0.0503 0 -0.0938 0 0.0541 0 -0.0098 0 0.0003 0 0 0 0 0.0950 0 -0.2011 0 0.1408 0 -0.0361 0 0.0025 0 0 0 0 0.1804 0 -0.4273 0 0.3519 0 -0.1173 0 0.0135 0 -0.0002 0 0 0.3444 0 -0.9021 0 0.8546 0 -0.3519 0 0.0587 0 -0.0027 0 0 0.6602 0 -1.8945 0 2.0298 0 -0.9971 0 0.2199 0 -0.0176 0 0.0002 1.2696 0 -3.9612 0 4.7362 0 -2.7064 0 0.7478 0 -0.0880 0 0.0029 0 P = 1.0e+03 * 1.2696 0 -3.9612 0 4.7362 0 -2.7064 0 0.7478 0 -0.0880 0 0.0029 0

16   Pass
n = 14; P_correct = [5014575 0 -16900975 0 22309287 0 -14549535 0 4849845 0 -765765 0 45045 0 -429]/2048; assert(isequal(round(legendrePoly(n)*2048),round(P_correct*2048)));

P = 1.0e+04 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0001 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0001 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0001 0 -0.0001 0 0 0 0 0 0 0 0 0 0 0 0.0003 0 -0.0001 0 0 0 0 0 0 0 0 0 0 0 0.0004 0 -0.0004 0 0.0000 0 0 0 0 0 0 0 0 0 0.0008 0 -0.0009 0 0.0002 0 0 0 0 0 0 0 0 0 0.0014 0 -0.0020 0 0.0007 0 -0.0000 0 0 0 0 0 0 0 0.0027 0 -0.0043 0 0.0020 0 -0.0002 0 0 0 0 0 0 0 0.0050 0 -0.0094 0 0.0054 0 -0.0010 0 0.0000 0 0 0 0 0 0.0095 0 -0.0201 0 0.0141 0 -0.0036 0 0.0002 0 0 0 0 0 0.0180 0 -0.0427 0 0.0352 0 -0.0117 0 0.0014 0 -0.0000 0 0 0 0.0344 0 -0.0902 0 0.0855 0 -0.0352 0 0.0059 0 -0.0003 0 0 0 0.0660 0 -0.1894 0 0.2030 0 -0.0997 0 0.0220 0 -0.0018 0 0.0000 0 0.1270 0 -0.3961 0 0.4736 0 -0.2706 0 0.0748 0 -0.0088 0 0.0003 0 0.2449 0 -0.8252 0 1.0893 0 -0.7104 0 0.2368 0 -0.0374 0 0.0022 0 -0.0000 P = 1.0e+04 * 0.2449 0 -0.8252 0 1.0893 0 -0.7104 0 0.2368 0 -0.0374 0 0.0022 0 -0.0000

17   Pass
n = 15; P_correct = [9694845 0 -35102025 0 50702925 0 -37182145 0 14549535 0 -2909907 0 255255 0 -6435 0]/2048; assert(isequal(round(legendrePoly(n)*2048),round(P_correct*2048)));

P = 1.0e+04 * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0001 0 -0.0001 0 0 0 0 0 0 0 0 0 0 0 0 0.0003 0 -0.0001 0 0 0 0 0 0 0 0 0 0 0 0 0.0004 0 -0.0004 0 0.0000 0 0 0 0 0 0 0 0 0 0 0.0008 0 -0.0009 0 0.0002 0 0 0 0 0 0 0 0 0 0 0.0014 0 -0.0020 0 0.0007 0 -0.0000 0 0 0 0 0 0 0 0 0.0027 0 -0.0043 0 0.0020 0 -0.0002 0 0 0 0 0 0 0 0 0.0050 0 -0.0094 0 0.0054 0 -0.0010 0 0.0000 0 0 0 0 0 0 0.0095 0 -0.0201 0 0.0141 0 -0.0036 0 0.0002 0 0 0 0 0 0 0.0180 0 -0.0427 0 0.0352 0 -0.0117 0 0.0014 0 -0.0000 0 0 0 0 0.0344 0 -0.0902 0 0.0855 0 -0.0352 0 0.0059 0 -0.0003 0 0 0 0 0.0660 0 -0.1894 0 0.2030 0 -0.0997 0 0.0220 0 -0.0018 0 0.0000 0 0 0.1270 0 -0.3961 0 0.4736 0 -0.2706 0 0.0748 0 -0.0088 0 0.0003 0 0 0.2449 0 -0.8252 0 1.0893 0 -0.7104 0 0.2368 0 -0.0374 0 0.0022 0 -0.0000 0.4734 0 -1.7140 0 2.4757 0 -1.8155 0 0.7104 0 -0.1421 0 0.0125 0 -0.0003 0 P = 1.0e+04 * 0.4734 0 -1.7140 0 2.4757 0 -1.8155 0 0.7104 0 -0.1421 0 0.0125 0 -0.0003 0