RGBからCMYKへ変換するには

RGBとCMYKカラーの変換には簡単な変換式はありませんし、完全に可逆の変換が出来るわけでもありません。また用途に応じて変換方法も違ってきます。
まずは適切なiccプロファイル(RGB,CMYK)を用意します。CMYKのプロファイルとしては日本で印刷するなら ( Japan Color 2011)などが有名でしょうか。あとは変換エンジンとなるカラーマネジメントモジュール(LittleCMSなど)を使いましょう。これはプログラマ向けのライブラリなので一般向けアプリケーションとしてはお絵かきソフトウェアのKritaが利用できます。


カラーマネジメントモジュールは具体的にどんな変換をしているかというと
まずRGBカラーを一旦L*a*b*カラーへ変換します。この変換には一般に正確な変換式があります。
しかしながらRGBカラーと言っても色空間はsRGBを始めとして色々ありますので各色空間のiccプロファイルのデータを用いて変換します。
つぎにL*a*b*からCMYKへ変換しますがこの変換には正確な変換式はありません。ではどうするかというとiccプロファイル内のルックアップテーブルを使用します。RGB系のプロファイルと比べてCMYK系のプロファイルのサイズが大きいのはこのルックアップテーブルがあるからです。

補足
実はL*a*bカラーといっても白色点の取り方によって値は異なってくるためD50、D65等が用いられます。この白色点の違いは相互に変換可能です。
XYZ色空間をL*a*b*色空間の代わりに用いることもできます。この2つは相互に変換可能です。
Lab色空間は広いため一般的にRGBカラーからLabへ正確にマッピングできますし、同じRGB色空間であればその逆も可能です。しかし全てのLabカラーをRGBカラーで表現することは変換はできません。これはCMYKとLabについても同じことが言えます。
RGBとCMYK、RGBとRGB、CMYKCMYKでは片方では表現できてももう片方では表現できない色域があったりします。