Not if a1, a2, a3, a4, etc., are separate variables. If that is what you have done, then it is time to learn to program in ways that use vectors.
But, if you have a vector that contains the values a1, a2, a3,..., then yes, it is possible. Will it be faster than simply using loops? Possibly not. Loops can be pretty fast. So, first i'll make up some numbers, just to test things.
n = 1000;
P = pi;
F = 0.98;
a = rand(1,n);
Now, write it as a loop. I'd want to recheck carefully that I got the terms correct here, but they seem right:
tic
Lsum = P;
for i = 2:n+1
Li = a(i-1);
for j = 2:i-1
Li = Li + j*F.^(j-1)*a(i-j);
end
Lsum = Lsum + Li + i*F.^(i-1)*P;
end
toc
Elapsed time is 0.009333 seconds.
For n=1000, is that really that slow? Do you really care if you can make it run twice as fast? In fact, even for n=10000, it only took my computer 0.1 seconds to do the full computation.
Never spend the programming time to try to make something elegant merely because you want it to be as efficient as possible. If you are doing the above computation millions of times and it can vbe seen to be a bottleneck, ONLY THEN do you spend the time to make it more efficient. Don't pre-optimize your code. Programmer time is worth far more than a few extra CPU cycles.