Cody

# Problem 1473. Legendre polynomials

Solution 1986279

Submitted on 22 Oct 2019 by Earnest
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)));

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

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

p0 = 0 0 1

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

p0 = 0 0 1 p0 = 0 0 1 0

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

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000

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

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000 p0 = 0 0 2.5000 0 -1.5000 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)));

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000 p0 = 0 0 2.5000 0 -1.5000 0 p0 = 0 0 4.3750 0 -3.7500 0 0.3750

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)));

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000 p0 = 0 0 2.5000 0 -1.5000 0 p0 = 0 0 4.3750 0 -3.7500 0 0.3750 p0 = 0 0 7.8750 0 -8.7500 0 1.8750 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)));

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

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)));

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000 p0 = 0 0 2.5000 0 -1.5000 0 p0 = 0 0 4.3750 0 -3.7500 0 0.3750 p0 = 0 0 7.8750 0 -8.7500 0 1.8750 0 p0 = 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 p0 = 0 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 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)));

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

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)));

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000 p0 = 0 0 2.5000 0 -1.5000 0 p0 = 0 0 4.3750 0 -3.7500 0 0.3750 p0 = 0 0 7.8750 0 -8.7500 0 1.8750 0 p0 = 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 p0 = 0 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 p0 = 0 0 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734 p0 = 0 0 94.9609 0 -201.0938 0 140.7656 0 -36.0938 0 2.4609 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)));

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

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)));

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000 p0 = 0 0 2.5000 0 -1.5000 0 p0 = 0 0 4.3750 0 -3.7500 0 0.3750 p0 = 0 0 7.8750 0 -8.7500 0 1.8750 0 p0 = 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 p0 = 0 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 p0 = 0 0 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734 p0 = 0 0 94.9609 0 -201.0938 0 140.7656 0 -36.0938 0 2.4609 0 p0 = 0 0 180.4258 0 -427.3242 0 351.9141 0 -117.3047 0 13.5352 0 -0.2461 p0 = 0 0 344.4492 0 -902.1289 0 854.6484 0 -351.9141 0 58.6523 0 -2.7070 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)));

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000 p0 = 0 0 2.5000 0 -1.5000 0 p0 = 0 0 4.3750 0 -3.7500 0 0.3750 p0 = 0 0 7.8750 0 -8.7500 0 1.8750 0 p0 = 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 p0 = 0 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 p0 = 0 0 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734 p0 = 0 0 94.9609 0 -201.0938 0 140.7656 0 -36.0938 0 2.4609 0 p0 = 0 0 180.4258 0 -427.3242 0 351.9141 0 -117.3047 0 13.5352 0 -0.2461 p0 = 0 0 344.4492 0 -902.1289 0 854.6484 0 -351.9141 0 58.6523 0 -2.7070 0 p0 = 1.0e+03 * 0 0 0.6602 0 -1.8945 0 2.0298 0 -0.9971 0 0.2199 0 -0.0176 0 0.0002

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)));

p0 = 0 0 1 p0 = 0 0 1 0 p0 = 0 0 1.5000 0 -0.5000 p0 = 0 0 2.5000 0 -1.5000 0 p0 = 0 0 4.3750 0 -3.7500 0 0.3750 p0 = 0 0 7.8750 0 -8.7500 0 1.8750 0 p0 = 0 0 14.4375 0 -19.6875 0 6.5625 0 -0.3125 p0 = 0 0 26.8125 0 -43.3125 0 19.6875 0 -2.1875 0 p0 = 0 0 50.2734 0 -93.8438 0 54.1406 0 -9.8438 0 0.2734 p0 = 0 0 94.9609 0 -201.0938 0 140.7656 0 -36.0938 0 2.4609 0 p0 = 0 0 180.4258 0 -427.3242 0 351.9141 0 -117.3047 0 13.5352 0 -0.2461 p0 = 0 0 344.4492 0 -902.1289 0 854.6484 0 -351.9141 0 58.6523 0 -2.7070 0 p0 = 1.0e+03 * 0 0 0.6602 0 -1.8945 0 2.0298 0 -0.9971 0 0.2199 0 -0.0176 0 0.0002 p0 = 1.0e+03 * 0 0 1.2696 0 -3.9612 0 4.7362 0 -2.7064 0 0.7478 0 -0.0880 0 0.0029 0