ب ل مطا ت س ر ه ف از ی ن ش ی پر ب روزی م اول. ل ص ف& .......................................................................................................................... ها4 و زاه ت ص ن ل دوم. ص ف& ....................................................................................................................... ی داز ان.... 11 ماد ن ی ف ر مع وم. س ل ص ف& .............................................................................................................................. ها.... 24 رد ب هازم. کاز> چ ل ص فSage ساب ح دز.............................................................................................. ل ی س نرا ف ی د32 م. جK ن> ن ل ص ف1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
فهرست مطالب
فصل اول. مروری بر پیش نیازها......................................................................................................
....................4
فصل دوم. نصب و راهاندازی................................................................................................
...........................11
فصل سوم. معرفی نمادها......................................................................................................
............................24
در حسابSageفصل چهارم. کاربرد دیفرانسیل...........................................................................................
فصل پنجم. میدان ها و حلقه32...ها......................................................................................................
....................45
فصل ششم. معرفی چند جمله ایها......................................................................................................
.............56
فصل هفتم. ایده آل ها و پایهگروبنر................................................................................................
.................64
1
فصل هشتم. واریه های آفین و صفحهآفینی..................................................................................................
.....71
فصل نهم. ماتریس ها و حلمعادالت..............................................................................................
Sageیک نرم افزار رایگان است که از شاخه های جبر، هندسه، نظریه اعداد، رمز نگاری، محاسبات عددی و شاخه های مرتبط پشتیبانی می کند. هدف نهایی سPPیج،
,matlabایجاد یک نرم افزار رایگان و متن باز با قابلیت نPPرم افPPزار هPPایی چPPون ...
maple, mathematica, maxima, magma.است
Stein تولید شد. مدیریت این پPروژه بPر عهPده ی 2005اولین نسخه سیج در سال
WilliamایPPرم افزارهPPه نPPه بودکPPود. او دریافتPPیک ریاضیدان از دانشگاه واشنگتن ب ریاضی زیادی وجود دارندکه در زبان های برنامه نویسی مختلف نوشته شPPده انPPد و زمانی که نیاز است تاکار های متفاوتی را انجام دهیم بایستی با تک تک این زبان ها
2
نوشPPتهpythonآشنا باشیم اما در نرم افزار سیج که بر اساس زبان برنامه نویسی نیست، تنها کافیسPPت کمیpythonشده است، حتی نیازی به مسلط بودن بر زبان
به زبان انگلیسی تسلط داشت.
دنبال می کند عبارتند از :Sageاهدافی که
کاربردی. کاربران اصلی سیج دانشجویان، مدرسان و محققان ریاضPPیات می(1باشند. هدف، تولید
نرم افزاری در ساختارهای ریاضPPیات ماننPPد جPPبر، هندسPPه، نظریPPه اعPPداد و ... وشاخه های مرتبط است.
NTL ,PARI ,GMPکارایی. سیج از نرم افزارهای بسیار بهینه شده مانند (2
کند و در عملیات اصلی بسیار سریع است. استفاده می
رایگان و متن باز بودن. کد منبع به طور کPPامالً مناسPPبی در دسPPترس و خوانPPا(3-توانند اینکه سیستم در هنگام اجرا واقعا چه کاری انجام میاست. کاربران میدهد را درک کنند.
مشارکت. این نرم افزار از نظر ظاهر اجرا شباهت های زیادی بPPا اکPPثر نPPرم(4افزارهای ریاضیات موجود دارد.
توان با مشاهده متن، کد عملکرد را تحلیل کرد.محیط کاربری مناسب. می(5
3
بخش اول مروری بر پیش نیاز
ها
4
. مروری بر پیش نیاز ها1.2
یک رابطه ترتیب > روی یک مجموعه یک جمله ای های حلقه . 1.2.1تعریف k [ x1, …, xn را یک ترتیب یک جمله ای می نامیم هرگاه [
i..یک رابطه ترتیب کلی ) خطی( باشد ، <
ii. با ضرب در ، <K[x] سازگار باشد. یعنی اگر Xα ، Xβ وXγیک جمله ای های kدلخواه در [ x1, …, xn باشند، در اینصورت[
Xα ¿ Xβ → Xγ. Xα > Xγ. Xβ
5
iii. خوشترتیب است. یعنی هر مجموعه ناتهی از یکجمله ایهای ، >k [ x1, …, xn ] نسبت به > ، دارای کوچکترین عضو باشد.
( lexicographic order .ترتیب الفبایی )1.2.2تعریف
چپ ترین درایه غیر صفر مثبتα-β ϵ Zn هرگاه در بردار تفاضل α>lex βگوییم باشد. می نویسیم
Xα >lex Xβ هرگاه α>lex β
(graded lex order .ترتیب الفبایی مدرج ) 1.2.3تعریف
α>lex β در اینصورت |α|=|β| یا اگر |α|>|β| هرگاه α>grlex βگوییم ( graded reverse lex order . ترتیب الفبایی معکوس مدرج) 1.2.4تعریف
در اینصورت در بردار|α|=|β| یا هرگاه |α|>|β| هرگاه α>grevlex βگوییم که تفاضل
α-β ϵ Zn.راست ترین درایه غیر صفر منفی باشد ∑ =fفرض میکنیم . 1.2.5تعریف aα xαیک چند جمله ای غیر صفر در
k [ x1, …, xn ] K [ x [ باشد.x]K= و > ، یک ترتیب یک جمله ای روی یک جمله ای های [ در اینصورت درجه ی کلی، درجه مرکب، ضریب پیشرو، یک جمله ای پیشرو و
به صورت زیر تعریف می شوندfجمله ی پیشروی
Max {|α||aα≠0}=:deg( fدرجه کلی = )f = Total degreeMax{ α|aα ≠ 0 }=:mdeg(f درجه مرکب = )f = Multi degree6
amdegf ϵK =: LC(f ضریب پیشرو = )f= Leading degree
Xmdegf =: LM(fیکجمله ای پیشرو = )f = Leading monomialLC(f ) LM(f) =: LT( f جمله پیشرو = )f = Leading term
rϵk ثابت میگیریم. یک چند جمله ای Nnیک ترتیب یکجمله ای را روی . 1.2.6تعریف [ x1 ,…, xn F={f را نسبت به یک مجموعه از چند جمله ای های غیر صفر [ 1,…f
,s} تحویل یافته گوییم هرگاه r=0 یا r یک ترکیب kخطی از یک جمله ای هایی - LT(fباشد که هیچ یک از آنها بر هیچ یک از 1),… , LT(f s).بخشپذیر نباشد
k یک چند جمله ای .1.2.7تعریف [ x1 ,…, xn ] ϵ f را روی میدانKتحویل ناپذیر یا hϵK ثابت نباشد و fگوییم هرگاه
∀ g ,h ϵ K ¿1, …, xn¿ f= gh →gϵ K
f ثابت میگیریم. فرض کنیم Nnیک ترتیب یکجمله ای را روی . 1.2.1قضیه =¿1
,…, fs¿ یک s تایی مرتب از چند جمله ای های ناصفر در -K [ x اینصورت هر باشد در[
fϵ K [ X را میتوان به [
f =a1fصورت 1 + … + asf s+r نوشت که در آن rϵK [ x] ، ai وr{ نسبت به f1..,, fs} تحویل یافته است.
r را باقی مانده تقسیم f بر F می نامند و به عالوه اگر aifi ≠ 0در اینصورت ،
mdeg (f) ≥ mdeg(aif i)
7
فرض کنیم > یک ترتیب یکجمله ای ثابت باشد. مجموعه .1.2.8تعریف نسبت به > گوییم هرگاه<I را یک پایه گروبنر I از ایده آل G={g1,…,gt}متناهی
<LT(I)> = <LT(g1) ,…, LT(gt)
K چند جمله ای های ناصفردر f , g.فرض کنیم 1.2.9تعریف [ x LM(f)=xα با [
باشد، یعنی xβ و xα کوچکترین مضرب مشترک xγ باشند. فرض کنیم LM(g)=xβو i=1به ازای هر هر , …,n ،γi=:
max{αi,βi} در اینصورت چندجمله ای
g f - xγ
¿(g) S(f ,g)=:xγ
¿( f )
می نامیم.g و f چند جمله ای – Sرا
باشد در اینصورت یک مجموعه ازK[x] یک ایده آل در Iفرض . 1.2.2قضیه است اگر و فقط اگرI یک پایه گروبنر برای I از ایده- آل G = {g1,…,gt}مولد
)مرتب شده نسبت به یکG بر S(gi,gj)، باقی مانده i≠j با j و iبرای هر زوج ترتیب ( صفر باشد.
K از حلقه I . برای یک ایده آل مفروض ناصفر 3. 1.2قضیه [ x می توانیم یک[I=<fپایه گروبنر بیابیم. فرض کنیم 1,…,f j >یک ایده آل ناصفر باشد در اینصورت
محاسبه میI یک پایه گروبنر برای ایده آل الگوریتم زیر در تعدادی متناهی مرحلهکند.
input(: )f1,…,fورودی ) s )F =
8
ϵ G f برای G={g1,…,gt}( : یک پایه گروبنر outputخروجی )
G:= F( :initializationمقدار دهی اولیه ) :={(ɠ f i ,f j)|f i , f j ϵG , f i ≠ f j}h:= 0WHILE ≠0 DOɠ Choose any {f,g} ϵɠ
:= \{ { f,g}}ɠ ɠ h =:S( f , g)G
IF h≠0 THEN := ɠ ɠ ∪ { {u , h }|uϵ G }
{h }G:= G ∪
IϵK یک پایه گروبنر ایده آل G={g1,…,gt} فرض کنیم 1.2.10تعریف [ x].باشد Gرا پایه گروبنر تحویل یافته گوییم هرگاه
i.∀ i LC ( gi )=1 ii. هرgi نسبت بهG\ {gi}.تحویل یافته باشد
9
ϵK< و I=<f1,…,fs. برای یک ایده آل مفروض 11 . 2 .1تعریف ¿ ]fبه یا خیرf ϵ Iطریق زیر میتوانیم تشخیص دهیم که آیا
i. ابتدا یک پایه گروبنرG را توسط الگوریتم بوخبرگر برای ایده آل Iمحاسبه می کنیم. ii. این حقیقت را به کار می بریم کهf G=0 f ϵ I ↔
f1,…,fs I یک میدان دلخواه باشد و>= > K .فرض کنیم 4 .2 .1قضیه < =:f1 , … , fs, 1-yf >⊆K[x1,…,xn,y] 1ϵ ~I ↔ f ϵ √ I
↔~I =k [ x1 , …,xn , y ]
مجموعه یn و یک عدد صحیح مثبت K برای یک میدان .12 .2 .1تعریف
a1,…,an)|a1,…, an ϵ K=}) }k n را فضای آفین n.بعدی می گوییم -
S ⊆ K∃ را واریه آفین نامیم هرگاه :X ⊆Kn یک مجموعه .16 . 2 .1تعریف [ X ]X = V(S) I⊵k فرض می کنیم .5 .2 .1قضیه [x1 , …, xn] و G یک پایه گروبنر از Iنسبت به
ترتیب الفبایی با
x1> x2>…> xn 0 باشد، در اینصورت برای هر ≤ l≤ nمجموعه ی ،
Gl≔G∩ k [ x1 , …, xn] یک پایه گروبنر برای ایده آل حذفی l ام I l .است
10
فصل دوم نصب و راه اندازی
Sageروش های اجرای
i.نصب آن به صورت نرم افزارii. اجرای مستقیم آن در سایتwww.sagemath.org البته برخی امکانات را
رسم کرد.plot_vector_fieldمیدان های برداری را میتوان با استفاده از دستور
مثال.
39
x , y=var ( ' x , y ' )
A=plot¿ ((x , y) ,(x ,−2,2) ,( y ,−2,2) ,¿ ' blue ' )
. برخی از توابع رسم نمودار8 . 4
Implicit_plot یک تابع دو متغیره را میگیرد و منحنی : ) (f ( x , y را رسم 0=(می کند.
مثال.
x , y=var ( ' x , y ')
f ( x , y )=x¿+ y¿2−2
implict−plot¿)
40
:metrix−plot نقاط را می گیرد و برای یک سری بردار به صورت پیکسلی()ماتریس را نمایش می دهد.
Sage : x , y=var (' x , y ' )
Sage :¿ plot ( [ 1,0 ] , [0,1 ]) , fontsize=10¿
41
complex−plot f(z)رسم نمودار یک تابع یک متغیره با ورودی اعداد مختلف : ()
Sage :complex−plot ¿)
42
(̊ رسم دایره با شعاع دلخواه.(ellipse().رسم بیضی با شعاع و زاویه دلخواه arc یک کمان از یک دایره یا بیضی()Line یک خط با نقاط مشخص شده()polygon( رسم یک چند ضلعی(
فصل پنجم
43
میدان ها و حلقه ها
. معرفی میدان ها1 . 5
انواع میدان ها به راحتی قابل تعریف می باشند.Sageدر نرم افزار
در این قسمت به معرفی برخی میدان های مورد نیاز برای تعریف حلقه ها میپردازیم.
. میدان اعداد گویا1 . 1 .5
)( نشان می دهیم.RationalField و یا دستور QQاین میدان را با نماد
مثال.
Sage: RationalField)(
44
Sage:QQ
Sage:1/2 in QQ
True
Sage:sqrt(2) in QQ
False
. میدان اعداد مختلط2 .1 .5
استفاده می کنیم.CCبرای نشان دادن میدان اعداد مختلط از نماد
مثال.
Sage: CC
Sage:CC.0 # 0th generator of CC#
10000000000∗I
Sage: a, b = 4/3, 2/3
Sage: z = a + b*i
Sage: z
1.33333333333333+0.666666666666667∗I
Sage: z.imag() # imaginary part
0.666666666666667
45
Sage: z.real() == a # automatic coercion before comparison
True
Sage: a + b
2
. میدان های متناهی3 .1 .5
)...( نشان می دهند.GFمیدان های متناهی را به صورت
Sage: GF(3)
Finite Field of ¿
Sage: GF(27, 'a') # need to name the generator if not a prime field
Finite Field∈a of ¿3
. میدان به طور جبری بسته4 .1 .5
برای نشان دادن میدان به طورجبری بسته به صورت زیر عمل می کنیم.
Sage: QQbar
Sage:sqrt(3) in QQbar
True
46
. حلقه ها2 .5
. حلقه چند جمله ای ها1 .2 .5
جهت معرفی حلقه ی چند جمله ای ها، به طور کلی از دستور
R=PolynomialRing(Field, number of variables, variables, order)
استفاده می شود و در مرحله بعد مولد ها را تعریف میکنیم.
اما دستورهای دیگر برای معرفی حلقه ی چند جمله ای به شرح زیر می باشد.
R=PolynomialRing(QQ,3, 'x,y,z', 'lex')
R=PolynomialRing(QQ, 't')
R.<t>= PolynomialRing(QQ)
R.<t>= QQ []
R=PolynomialRing(RationalField(),'x')
R=PolynomialRing(GF(97), 'x').gen()
R=GF(5)[ 'x,y,z']; x,y,z=R.gens()
R.<x>=PolynomialRing(QQ)
Realpoly.<z>=PolynomialRing(RR)
Ratpoly.<t>=PolynomialRing(QQ)
. معرفی مولد ها1 .1 .2 .5
معرفی مولد های یک حلقه به صورت زیر می باشد.
47
R=PolynomialRing(QQ,3, 'x,y,z', 'lex')
x,y,z = R.gens()
R=PolynomialRing(RationalField(),'x').gen()
)( استفاده می کنیم.gensاگر بیش از یک مولد داشته باشیم از عبارت
. حلقه خارج قسمتی2 .2 .5
استفاده می کنیم.R.quoبرای تعریف یک حلقه خارج قسمتی از )(
مثال.
Sage: R.<x> = PolynomialRing(ZZ)
S.<xbar> = R.quo((4 + 3*x + x^2, 1 + x^2)); S
Quotient of Univariate Polynomial Ring in x over Integer Ring by the
برای تشخیص اینکه ایده آل اصلی، ماکسیمال و یا اول است از دستورis_prime/principal/maximal.استفاده می کنیم )( میتوان دستورهای زیادیTab_ و سپس فشردن کلید is)به طور کلی با نوشتن ...
از این قبیل را یافت.((¿¿ =Iمثال. با توجه به ایده آل
Sage:I.is_prime)(
62
false
Sage:I.is_principal)(True
. ایده آل رادیکال7.4 ) (I.radicalدر مواردی که بخواهیم رادیکال یک ایده آل را بدست آوریم از عبارت
استفاده می کنیم.Sage: I=ideal(x+y+z-3,x^2+z^2+y^2-5,x^3+y^3+z^3-7)
Sage: I.radical)(Ideal(x+y+z-3,y^2+y^z+z^2-3*y-3*z+2,3*z^3-9*z^2+6*z+2) of Multivariate
Polynomial Ring in x,y,z over Rational Field
. اشتراک دو ایده آل7.5 پس از معرفی حلقه و ایده آل ها ازJ و Iبرای بدست آوردن اشتراک دو ایده آل
استفاده می کنیم.I.intersection(J)دستور
R.<x> = PolynomialRing(QQ, 1)
Multivariate Polynomial Ring in x over Rational Field
Sage: I = R.ideal(x^2-1) ; I
Ideal (x^2 - 1) of Multivariate Polynomial Ring in x over Rational Field
Sage: J = R.ideal(x^2-2) ; J
Ideal (x^2 - 2) of Multivariate Polynomial Ring in x over Rational Field
Sage: I.intersection(J)
Ideal (x^4 - 3*x^2 + 2) of Multivariate Polynomial Ring in x over Rational Field
. پایه گروبنر7.6
63
دستوری که برای محاسبه پایه گروبنر محاسبه می شود عبارت
B=I.groebner_basis( )
.می باشد
.مثال
Sage: P.<x,y,z> = PolynomialRing (ZZ,order='lex')
Sage: I = ideal(− y2−3∗y+z2+3 ,−2∗y∗z+z2+2∗z+1 ,¿
x∗z+ y∗z+z2 ,−3∗x∗y+2∗y∗z+6∗z2¿
Sage:I,groebner_basis()¿
+158864 , z2+17223 ,2∗z+41856 ,164878 ¿
. الگوریتم بوخبرگر7.7
برای محاسبه الگوریتم بوخبرگر راه های زیادی وجود دارد اما ساده ترین حالت آن ” می باشد. کافیست ابتدا برنامهmaximaاستفاده از دستوری از نرم افزار “
Maxima.را فراخوانی کرده و دستور زیر را وارد کنیم
Sage: maxima('load(grobner) ')
Sage: ans=maxima('poly_buchberger ([− y2−3∗y+z2+3 ,−2∗y∗z+z2+2∗z+x∗z+ y∗z+ z2 ,−3∗x∗ y+2∗y∗z+6∗z2] ,[ x , y , z ])' ¿