Is my lookup table with 50,000 entries too big for MCU memory (dsPIC33EP256MC506)?
You say your lookup table will contain 50000 elements and each element will have the range of -9999 to 9999. That means each element will need 16 bits (= 2 bytes) of memory. So the whole LUT will need 50000 x 2 bytes = 100000 bytes = aprox. 97.6 Kbytes.

Your microcontroller has  256 Kbytes of Flash memory and 32 Kbytes of RAM. So your program/Flash memory would be enough for the LUT. To place the table in program memory you need to declare it as const: const int16_t LUT[] = { ... };