Ultimately, no.
I've written on this a bit (http://voiceofthedba.wordpress.com/2012/01/09/capacity-planning-for-new-hardware/), but without a real workload, you can't do anything other than guesstimate. There are formulas that look at data types, but they all require you to guess at the row growth, which is hard for a new database. When you look at all tables, it's not easy to say the rate at which each will grow. This is just for storage.
For memory/CPU, that's completely workload dependent, not data or user dependent. One user with poorly written queries can max out both of those.
Best guess is what you can do. If you have a similar type of system, you might be able to refine your guess, but it's a guess.