If you can book ahead, by far the fastest option is to fly from Bath to Edinburgh. Even with the highest priced flight ticket, it is probably still worth flying in terms of convenience unless, of course, cost is your main concern. If so you may wish to consider the bus, the National Express service to Edinburgh departs from the Bath's SouthGate Travel Interchange bus stop.
There are two early morning coaches a day one involves 1 hour 40 minute transfer at Victoria Coach Station, London, and the other has two changes (at Swindon and Birmingham). The overall journey takes 14 ¾ hours. There is also an early evening coach via Victoria Coach Station in London that arrives in Edinburgh at 07:50 the next morning. A single ticket costs 54.80 GBP and a return ticket is 70-80 GBP.
After booking online, you will be issued with an e-ticket, which you need to print out and take with you, or an m-ticket, which is sent to your mobile phone. Otherwise you can get at ticket at the bus station.
If you have more time than money or fancy stopping off in London before making your way to Edinburgh you may be interested in looking at Megabus who operate value bus services to Edinburgh. Fares can be as little as 5 GBP for a single if you book far enough in advance.
If you cant find a cheap ticket to Edinburgh try looking for Glasgow which is only 30 minutes away from Edinburgh. From Glasgow you can get to Edinburgh by local bus service or by train so this could work out better value. You may have to route via London to get the best deal, but it is defintely the cheapest way to go if you can book in advance.
There are 2-3 trains per hour. All trains go via Bristol Temple Meads where you have to change trains. Most services also require a further change at Birmingham New Street, and on some trains there is yet another change at Lancaster. If you want to travel overnight, there is a sleeper service, but as you have to change three times, including a transfer across London, there is not much time for sleep. It takes 6 ½ - 8 ½ hours and costs from 62 GBP single or 132.30 GBP for off peak return.
The UK train ticketing system is notoriously complicated. It is usually cheaper to buy your tickets up to 6pm on the day before you travel than on the day. And fares are more expensive if you travel before 09:30. You get the best fares by booking up to three months in advance. You can buy your tickets online, at the station ticket counter, or from the ticket machines on the main concourse. If you book online you will need to collect your tickets from the ticket machine using the same credit card you used to book your tickets online.
Easyjet flies from Bristol International Airport to Edinburgh three times a day, and the flight takes one hour 10 minutes. Depending on how far ahead you book, a single ticket costs 22 GBP - 110 GBP. Be careful there are a number of extra charges that can give you a nasty surprise. It costs 6 GBP to check one 20kg bag into the hold. A 5 GBP charge for travel insurance is automatically added unless you remove that option when you book online.
The website also suggests you buy a Speedy Boarding pass for 5.50 GBP, but this is unnecessary. To get to the airport, take the train from Bath Spa station to Bristol International Airport. You need to change onto the Bristol International Flyer bus at Bristol Temple Meads Station. The journey to the airport takes about 1 hour 10 minutes and costs 11.80 GBP one-way. Check in at least 40 minutes before departure, and show your passport, otherwise you will be denied boarding. Easyjet sell a limited selection of sandwiches and refreshments onboard, but you might prefer to take your own.