我正在使用书中的方程式,当我使用Mathematica来解决它时它起作用。它基本上包含某些勒让德多项式阶的积分。例如。 P_1(x),P_2(x),P_3(x)。
当我将Mathematica用于特定情况时,例如
LegendreP[3, 0.5]
我得到了
-0.4375
允许我继续我的评估。但在MATLAB中,我得到了:
>> legendre(3,0.5)
ans =
-0.4375
-0.3248
5.6250
-9.7428
第一个返回的值总是正确的,但随后它吐出......我想其他系数?所以我想要做的就是告诉MATLAB返回第一个值。有没有办法在不事后将其分配给自己的变量的情况下执行此操作?例如。
之类的东西legendre(3,0.5)(1)
显然不会工作,因为它还没有存在于内存中。我是否正确地采取了这种方式?
由于
答案 0 :(得分:3)
如果它困扰您,只需将legendre
放入新功能legendre1
,这样您就可以使用库功能,但具有所需的功能。
function [ P ] = legendre1( n,X )
P = legendre(n,X);
P = P(1);
end
或实施自定义范围:
function [ P ] = legendre1( n,X,range )
P = legendre(n,X);
P = P(range);
end
所以legendre1( 3,0.5,1 )
会返回:
P =
-0.4375
和legendre1( 3,0.5,1:2 )
P =
-0.4375
-0.3248