Cody

# Problem 1464. Laguerre polynomials

Solution 1453726

Submitted on 1 Mar 2018
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('laguerrePoly.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(laguerrePoly(n)*1),round(P_correct*1)));

P = 1 P = 1

3   Fail
n = 1; P_correct = [-1 1]/1; assert(isequal(round(laguerrePoly(n)*1),round(P_correct*1)));

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test3 (line 3) assert(isequal(round(laguerrePoly(n)*1),round(P_correct*1)));

4   Fail
n = 2; P_correct = [1 -4 2]/2; assert(isequal(round(laguerrePoly(n)*2),round(P_correct*2)));

P = -2.0000 0.5000

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test4 (line 3) assert(isequal(round(laguerrePoly(n)*2),round(P_correct*2)));

5   Fail
n = 3; P_correct = [-1 9 -18 6]/6; assert(isequal(round(laguerrePoly(n)*6),round(P_correct*6)));

P = -3.0000 1.5000 P = -3.0000 1.5000 -0.1667

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test5 (line 3) assert(isequal(round(laguerrePoly(n)*6),round(P_correct*6)));

6   Fail
n = 4; P_correct = [1 -16 72 -96 24]/24; assert(isequal(round(laguerrePoly(n)*24),round(P_correct*24)));

P = -4 3 P = -4.0000 3.0000 -0.6667 P = -4.0000 3.0000 -0.6667 0.0417

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test6 (line 3) assert(isequal(round(laguerrePoly(n)*24),round(P_correct*24)));

7   Fail
n = 5; P_correct = [-1 25 -200 600 -600 120]/120; assert(isequal(round(laguerrePoly(n)*120),round(P_correct*120)));

P = -5 5 P = -5.0000 5.0000 -1.6667 P = -5.0000 5.0000 -1.6667 0.2083 P = -5.0000 5.0000 -1.6667 0.2083 -0.0083

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test7 (line 3) assert(isequal(round(laguerrePoly(n)*120),round(P_correct*120)));

8   Fail
n = 6; P_correct = [1 -36 450 -2400 5400 -4320 720]/720; assert(isequal(round(laguerrePoly(n)*720),round(P_correct*720)));

P = -6.0000 7.5000 P = -6.0000 7.5000 -3.3333 P = -6.0000 7.5000 -3.3333 0.6250 P = -6.0000 7.5000 -3.3333 0.6250 -0.0500 P = -6.0000 7.5000 -3.3333 0.6250 -0.0500 0.0014

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test8 (line 3) assert(isequal(round(laguerrePoly(n)*720),round(P_correct*720)));

9   Fail
n = 7; P_correct = [-1 49 -882 7350 -29400 52920 -35280 5040]/5040; assert(isequal(round(laguerrePoly(n)*5040),round(P_correct*5040)));

P = -7.0000 10.5000 P = -7.0000 10.5000 -5.8333 P = -7.0000 10.5000 -5.8333 1.4583 P = -7.0000 10.5000 -5.8333 1.4583 -0.1750 P = -7.0000 10.5000 -5.8333 1.4583 -0.1750 0.0097 P = -7.0000 10.5000 -5.8333 1.4583 -0.1750 0.0097 -0.0002

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test9 (line 3) assert(isequal(round(laguerrePoly(n)*5040),round(P_correct*5040)));

10   Fail
n = 8; P_correct = [1 -64 1568 -18816 117600 -376320 564480 -322560 40320]/40320; assert(isequal(round(laguerrePoly(n)*40320),round(P_correct*40320)));

P = -8 14 P = -8.0000 14.0000 -9.3333 P = -8.0000 14.0000 -9.3333 2.9167 P = -8.0000 14.0000 -9.3333 2.9167 -0.4667 P = -8.0000 14.0000 -9.3333 2.9167 -0.4667 0.0389 P = -8.0000 14.0000 -9.3333 2.9167 -0.4667 0.0389 -0.0016 P = -8.0000 14.0000 -9.3333 2.9167 -0.4667 0.0389 -0.0016 0.0000

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test10 (line 3) assert(isequal(round(laguerrePoly(n)*40320),round(P_correct*40320)));

11   Fail
n = 9; P_correct = [-1 81 -2592 42336 -381024 1905120 -5080320 6531840 -3265920 362880]/362880; assert(isequal(round(laguerrePoly(n)*362880),round(P_correct*362880)));

P = -9 18 P = -9 18 -14 P = -9.0000 18.0000 -14.0000 5.2500 P = -9.0000 18.0000 -14.0000 5.2500 -1.0500 P = -9.0000 18.0000 -14.0000 5.2500 -1.0500 0.1167 P = -9.0000 18.0000 -14.0000 5.2500 -1.0500 0.1167 -0.0071 P = -9.0000 18.0000 -14.0000 5.2500 -1.0500 0.1167 -0.0071 0.0002 P = -9.0000 18.0000 -14.0000 5.2500 -1.0500 0.1167 -0.0071 0.0002 -0.0000

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test11 (line 3) assert(isequal(round(laguerrePoly(n)*362880),round(P_correct*362880)));

12   Fail
n = 10; P_correct = [1 -100 4050 -86400 1058400 -7620480 31752000 -72576000 81648000 -36288000 3628800]/3628800; assert(isequal(round(laguerrePoly(n)*3628800),round(P_correct*3628800)));

P = -10.0000 22.5000 P = -10.0000 22.5000 -20.0000 P = -10.0000 22.5000 -20.0000 8.7500 P = -10.0000 22.5000 -20.0000 8.7500 -2.1000 P = -10.0000 22.5000 -20.0000 8.7500 -2.1000 0.2917 P = -10.0000 22.5000 -20.0000 8.7500 -2.1000 0.2917 -0.0238 P = -10.0000 22.5000 -20.0000 8.7500 -2.1000 0.2917 -0.0238 0.0011 P = -10.0000 22.5000 -20.0000 8.7500 -2.1000 0.2917 -0.0238 0.0011 -0.0000 P = -10.0000 22.5000 -20.0000 8.7500 -2.1000 0.2917 -0.0238 0.0011 -0.0000 0.0000

Error using nchoosek (line 65) K must be an integer between 0 and N. Error in laguerrePoly (line 10) tmp = nchoosek(n,ii)*(-1)^ii/factorial(ii); Error in Test12 (line 3) assert(isequal(round(laguerrePoly(n)*3628800),round(P_correct*3628800)));