It’s like anything else, you get better with practice. As long as you have an average intelligence there is no reason you can’t learn up to a certain point. It’s true there is natural talent, but that shouldn’t be an issue until you reach a much more advanced stage. You have to put the time in, you have to think about what you’re learning, you have to do practice problems, explore the concepts for yourself, draw diagrams, ask questions, actively engage with the material.
The keys things to focus on are: active recall, spaced repetition, and consistency. Work on the problem, walk away, try to reconstruct it in your own words/thoughts without reading. Do it again the next day, or a few days later.
Learning takes time. The important thing is to keep practicing, give your brain lots of information to digest, and while you are sleeping or just going about your day, your brain will be unconsciously running calculations and making connections.
You'll be surprised at how you are going about your business and suddenly a solution to a problem you had difficulty with pops into mind. That is the fruit of your efforts, your labor paying off.
If you want to get better at something you have to put in the time.
As for motivation, I understand it can be difficult. It takes a lot of effort and sometimes it can feel like you are making no progress, but I promise if you keep on trying you will start to improve.
Also note that there is an initial adjustment period of getting used to dealing with abstract arguments/numbers/etc. You might only read 2 pages in an hour the first few days, or spend 20-30 minutes solving just a single problem. Don’t be discouraged, as you gain more experience your mind will adjust.
Learning is lifelong journey, do not beat yourself up.
t. College dropout