นี่คือคำสั่ง ginsh ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
ginsh - GiNaC เชลล์แบบโต้ตอบ
เรื่องย่อ
กินซ์ [ไฟล์...]
DESCRIPTION
กินซ์ เป็นฟรอนต์เอนด์แบบโต้ตอบสำหรับเฟรมเวิร์กการคำนวณเชิงสัญลักษณ์ GiNaC มันคือ
มีวัตถุประสงค์เพื่อเป็นเครื่องมือในการทดสอบและทดลองใช้คุณสมบัติของ GiNaC ไม่ใช่เป็น
แทนที่ระบบพีชคณิตคอมพิวเตอร์เชิงโต้ตอบแบบเดิม แม้จะทำได้หลายอย่าง
สิ่งที่ระบบดั้งเดิมเหล่านี้สามารถทำได้ ginsh ไม่มีโครงสร้างการเขียนโปรแกรมเช่น
ลูปหรือนิพจน์เงื่อนไข หากคุณต้องการฟังก์ชันนี้ ขอแนะนำให้เขียน
โปรแกรมของคุณใน C ++ โดยใช้เฟรมเวิร์กคลาส GiNaC "ดั้งเดิม"
การใช้
INPUT FORMAT
หลังจากเริ่มต้น ginsh จะแสดงข้อความแจ้ง ("> ") แสดงว่าพร้อมที่จะยอมรับ
ป้อนข้อมูล. อินพุตที่ยอมรับได้คือนิพจน์ตัวเลขหรือสัญลักษณ์ที่ประกอบด้วยตัวเลข (เช่น
42, 2/3 or 0.17) สัญลักษณ์ (เช่น x or ผล) ตัวดำเนินการทางคณิตศาสตร์เช่น + และ *และ
ฟังก์ชั่น (เช่น บาป or ปกติ). ทุกนิพจน์อินพุตต้องสิ้นสุดด้วย a
อัฒภาค (;) หรือโคลอน (:). หากลงท้ายด้วยเครื่องหมายอัฒภาค ginsh จะประเมิน
นิพจน์และพิมพ์ผลลัพธ์ไปที่ stdout ถ้าลงท้ายด้วยโคลอน ginsh จะเท่านั้น
ประเมินนิพจน์แต่ไม่พิมพ์ผลลัพธ์ สามารถป้อนได้หลายรายการ
นิพจน์ในบรรทัดเดียว ช่องว่าง (ช่องว่าง แท็บ การขึ้นบรรทัดใหม่) สามารถใช้ได้อย่างอิสระระหว่าง
โทเค็น หากต้องการเลิกกิน ให้ป้อน เลิก or ทางออกหรือพิมพ์ EOF (Ctrl-D) ที่พรอมต์
ความคิดเห็น
สิ่งใดก็ตามที่ตามหลังเครื่องหมายทับคู่ (//) จนถึงท้ายบรรทัด และทุกบรรทัดเริ่มต้น
ด้วยเครื่องหมายแฮช (#) ถือเป็นความคิดเห็นและถูกละเว้น
หมายเลข
ginsh ยอมรับตัวเลขในรูปแบบทศนิยมปกติ ซึ่งรวมถึงความแม่นยำตามอำเภอใจ
จำนวนเต็มและตรรกยะตลอดจนเลขทศนิยมในรูปแบบมาตรฐานหรือทางวิทยาศาสตร์
สัญกรณ์ (เช่น 1.2E6). กฎทั่วไปคือถ้าตัวเลขมีจุดทศนิยม
(.) เป็นตัวเลขทศนิยม (ไม่แน่นอน) มิฉะนั้นจะเป็นจำนวนเต็ม (แน่นอน) หรือ
มีเหตุผล. จำนวนเต็มสามารถระบุเป็นเลขฐานสอง ฐานแปด เลขฐานสิบหก หรือแบบใดก็ได้ (2-36)
ฐานโดยนำหน้าด้วย #b, #o, #x,หรือ #nR ตามลำดับ
สัญลักษณ์
สัญลักษณ์ประกอบด้วยสตริงของตัวอักษรและตัวเลขและขีดล่าง (_) ด้วย
อักขระตัวแรกที่ไม่ใช่ตัวเลข เช่น a และ mu_1 เป็นชื่อสัญลักษณ์ที่ยอมรับได้ในขณะที่
2pi ไม่ใช่. สามารถใช้สัญลักษณ์ที่มีชื่อเดียวกับฟังก์ชันได้ (เช่น บาป);
ginsh สามารถแยกแยะระหว่างคนทั้งสองได้
สัญลักษณ์สามารถกำหนดค่าได้โดยป้อน
เครื่องหมาย = การแสดงออก;
หากต้องการยกเลิกการกำหนดค่าของสัญลักษณ์ที่กำหนด ให้พิมพ์
ยกเลิกการมอบหมาย ('เครื่องหมาย');
สัญลักษณ์ที่กำหนดจะได้รับการประเมินโดยอัตโนมัติ (= แทนที่ด้วยค่าที่กำหนด) เมื่อ
พวกมันถูกใช้ หากต้องการอ้างถึงสัญลักษณ์ที่ไม่ได้ประเมิน ให้ใส่เครื่องหมายคำพูดเดี่ยว (') รอบชื่อ
ดังที่แสดงไว้สำหรับคำสั่ง "unassign" ด้านบน
สัญลักษณ์จะถือว่าอยู่ในโดเมนที่ซับซ้อนโดยค่าเริ่มต้น กล่าวคือ จะถือว่า
พวกมันใช้แทนจำนวนเชิงซ้อน พฤติกรรมนี้สามารถเปลี่ยนแปลงได้โดยใช้คีย์เวิร์ด
สัญลักษณ์จริง และ เชิงซ้อน_สัญลักษณ์ และมีผลกับสัญลักษณ์ที่สร้างขึ้นใหม่ทั้งหมด
สัญลักษณ์ต่อไปนี้เป็นค่าคงที่ที่กำหนดไว้ล่วงหน้าซึ่งไม่สามารถกำหนดค่าโดย
ผู้ใช้:
Pi ค่าคงที่ของอาร์คิมิดีส
คาตาลัน ค่าคงที่ของคาตาลัน
ออยเลอร์ ออยเลอร์-มาเชโรนี คอนสแตนต์
I ตร.ว.(-1)
ล้มเหลว วัตถุของคลาส GiNaC "ล้มเหลว"
นอกจากนี้ยังมีพิเศษ
ตัวเลข
สัญลักษณ์ที่ควบคุมความแม่นยำของตัวเลขของการคำนวณด้วยตัวเลขที่ไม่แน่นอน
การกำหนดค่าจำนวนเต็มให้กับตัวเลขจะเปลี่ยนความแม่นยำเป็นจำนวนที่กำหนด
ตำแหน่งทศนิยม
ไพ่นกกระจอก
ฟังก์ชัน has(), find(), match() และ subs() ยอมรับไวด์การ์ดเป็นตัวยึดตำแหน่งสำหรับ
นิพจน์ เหล่านี้มีไวยากรณ์
$จำนวน
เช่น $0, $1 เป็นต้น
LAST พิมพ์ การแสดงออก
ginsh ให้สัญลักษณ์พิเศษสามตัว
%, %% และ %%%
ที่อ้างถึงนิพจน์ที่พิมพ์ครั้งสุดท้าย ครั้งที่สอง และครั้งที่สาม ตามลำดับ
สิ่งเหล่านี้มีประโยชน์หากคุณต้องการใช้ผลลัพธ์ของการคำนวณก่อนหน้าในรูปแบบใหม่
การแสดงออก
ผู้ประกอบการ
ginsh จัดเตรียมโอเปอเรเตอร์ต่อไปนี้ โดยเรียงตามลำดับความสำคัญที่ลดลง:
! postfix แฟคทอเรียล
^ เปิดเครื่อง
+ ยูนิพลัส
- เอกภาพลบ
* การคูณ
/ หมวด
+ นอกจากนี้
- การลบ
< น้อยกว่า
> มากกว่า
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
== เท่ากัน
!= ไม่เท่ากับ
= การกำหนดสัญลักษณ์
ตัวดำเนินการไบนารีทั้งหมดเชื่อมโยงซ้าย ยกเว้น ^ และ = ซึ่งถูกต้อง-
เชื่อมโยง ผลลัพธ์ของผู้ดำเนินการมอบหมาย (=) อยู่ทางขวามือ ดังนั้น
เป็นไปได้ที่จะกำหนดสัญลักษณ์หลายตัวในหนึ่งนิพจน์ (เช่น a = b = c = 2;).
รายการ
รายการถูกใช้โดย ผู้ใต้บังคับบัญชา และ แก้ปัญหา ฟังก์ชั่น. รายการประกอบด้วยวงเล็บปีกกาเปิด
({) ลำดับของนิพจน์ที่คั่นด้วยจุลภาค (อาจว่างเปล่า) และวงเล็บปีกกาปิด
(}).
เมทริกซ์
เมทริกซ์ประกอบด้วยวงเล็บเหลี่ยมเปิด ([) ลำดับที่คั่นด้วยเครื่องหมายจุลภาคที่ไม่ว่างเปล่า
ของแถวเมทริกซ์และวงเล็บเหลี่ยมปิด (]). แต่ละแถวของเมทริกซ์ประกอบด้วยช่องเปิด
วงเล็บเหลี่ยม ([) ลำดับนิพจน์ที่คั่นด้วยเครื่องหมายจุลภาคที่ไม่ว่างเปล่า และการปิด
วงเล็บเหลี่ยม (]). ถ้าแถวของเมทริกซ์มีความยาวไม่เท่ากัน ความกว้างของ
เมทริกซ์จะกลายเป็นของแถวที่ยาวที่สุดและแถวที่สั้นกว่าจะถูกเติมที่ส่วนท้ายด้วย
องค์ประกอบของค่าศูนย์
ฟังก์ชั่น
การเรียกใช้ฟังก์ชันใน ginsh มีรูปแบบ
ชื่อ(ข้อโต้แย้ง)
ที่ไหน ข้อโต้แย้ง เป็นลำดับของนิพจน์ที่คั่นด้วยเครื่องหมายจุลภาค ginsh ให้สองสาม
ฟังก์ชันในตัวและ "นำเข้า" ฟังก์ชันสัญลักษณ์ทั้งหมดที่กำหนดโดย GiNaC และ
ห้องสมุดเพิ่มเติม ไม่มีทางกำหนดฟังก์ชันของคุณเองได้นอกจากการเชื่อมโยง
ginsh กับไลบรารีที่กำหนดฟังก์ชัน GiNaC ที่เป็นสัญลักษณ์
ginsh จัดเตรียม Tab-completion ให้กับชื่อฟังก์ชัน: ถ้าคุณพิมพ์ส่วนแรกของฟังก์ชัน
ชื่อการกด Tab จะทำให้ชื่อสมบูรณ์ถ้าเป็นไปได้ หากส่วนที่คุณพิมพ์ไม่ซ้ำกัน
การกดปุ่ม Tab อีกครั้งจะแสดงรายการฟังก์ชันที่ตรงกัน กดปุ่ม Tab สองครั้งที่
พรอมต์จะแสดงรายการฟังก์ชันที่มีทั้งหมด
รายการฟังก์ชั่นในตัวดังต่อไปนี้ พวกเขาเกือบทั้งหมดทำงานเป็น GiNaC . ตามลำดับ
วิธีการที่มีชื่อเดียวกัน ดังนั้นฉันจะไม่อธิบายรายละเอียดที่นี่ โปรดดูที่
เอกสารประกอบ GiNaC
ชาร์โพลี(เมทริกซ์, เครื่องหมาย) - พหุนามลักษณะเฉพาะของเมทริกซ์
ค่าสัมประสิทธิ์ (การแสดงออก, วัตถุ, จำนวน) - แยกค่าสัมประสิทธิ์ของวัตถุ^จำนวนจาก a
พหุนาม
เก็บรวบรวม(การแสดงออก, วัตถุหรือรายการ) - รวบรวมสัมประสิทธิ์ของพลังที่คล้ายกัน (ผลลัพธ์
ในรูปแบบเรียกซ้ำ)
Collect_distributed(การแสดงออก, รายการ) - รวบรวมสัมประสิทธิ์ของพลังที่คล้ายกัน
(ผลในรูปแบบการกระจาย)
Collect_common_factors(การแสดงออก) - รวบรวมปัจจัยทั่วไปจากเงื่อนไขของผลรวม
ผัน(การแสดงออก) - การผันคำกริยาที่ซับซ้อน
เนื้อหา(การแสดงออก, เครื่องหมาย) - ส่วนเนื้อหาของพหุนาม
demp_rational(การแสดงออก, เครื่องหมาย) - แยกฟังก์ชันตรรกยะเป็นพหุนาม
และฟังก์ชันตรรกยะที่เหมาะสม
ระดับ(การแสดงออก, วัตถุ) - ดีกรีของพหุนาม
สกุล (การแสดงออก) - ตัวส่วนของฟังก์ชันตรรกยะ
ดีเทอร์มิแนนต์(เมทริกซ์) - ดีเทอร์มิแนนต์ของเมทริกซ์
วินิจฉัย (การแสดงออก...) - สร้างเมทริกซ์แนวทแยง
แตกต่าง (การแสดงออก, เครื่องหมาย [, ตัวเลข]) - ความแตกต่างบางส่วน
การแบ่ง(การแสดงออก, การแสดงออก) - การหารพหุนามที่แน่นอน
อีวาล(การแสดงออก [, ระดับ]) - ประเมินนิพจน์แทนที่สัญลักษณ์ด้วย
มูลค่าที่กำหนด
เอลฟ์(การแสดงออก [, ระดับ]) - ประเมินนิพจน์เป็นเลขทศนิยม
ประเมิน (การแสดงออก) - ประเมินผลรวม ผลิตภัณฑ์ และกำลังจำนวนเต็มของเมทริกซ์
ขยาย(การแสดงออก) - ขยายนิพจน์
ปัจจัย(การแสดงออก) - แยกตัวประกอบนิพจน์ (ตัวแปรเดียว)
หา(การแสดงออก, Belt hold ) - ส่งคืนรายการของรูปแบบที่เกิดขึ้นทั้งหมดใน an
การแสดงออก
แก้ปัญหา(การแสดงออก, เครื่องหมาย, จำนวน, จำนวน) - ค้นหารากของมูลค่าจริง
ทำงานภายในช่วงเวลา
จีซีดี(การแสดงออก, การแสดงออก) - ตัวหารร่วมมากสุด
มี(การแสดงออก, Belt hold ) - ส่งกลับ "1" หากนิพจน์แรกมีรูปแบบ
เป็นนิพจน์ย่อย "0" มิฉะนั้น
จำนวนเต็ม_เนื้อหา(การแสดงออก) - เนื้อหาจำนวนเต็มของพหุนาม
ผกผัน (เมทริกซ์) - ผกผันของเมทริกซ์
เป็น(ความสัมพันธ์) - ส่งกลับ "1" หากความสัมพันธ์เป็นจริง "0" มิฉะนั้น (เท็จหรือ
ไม่แน่ใจ)
ลซม.(การแสดงออก, การแสดงออก) - ตัวคูณร่วมน้อย
lcoef(การแสดงออก, วัตถุ) - สัมประสิทธิ์นำของพหุนาม
องศา(การแสดงออก, วัตถุ) - ดีกรีต่ำของพหุนาม
แก้(รายการสมการ, รายการสัญลักษณ์) - แก้ระบบสมการเชิงเส้น
แผนที่(การแสดงออก, Belt hold ) - ใช้ฟังก์ชันกับตัวถูกดำเนินการแต่ละตัว ฟังก์ชั่นที่จะ
ใช้ถูกระบุเป็นรูปแบบที่มีสัญลักษณ์แทน "$0" สำหรับตัวถูกดำเนินการ
จับคู่(การแสดงออก, Belt hold ) - ตรวจสอบว่านิพจน์ตรงกับรูปแบบหรือไม่ ส่งคืน a
รายการการแทนที่ไวด์การ์ดหรือ "FAIL" หากไม่มีการจับคู่
นพ (การแสดงออก) - จำนวนตัวถูกดำเนินการในนิพจน์
ปกติ(การแสดงออก [, ระดับ]) - การทำให้เป็นมาตรฐานของฟังก์ชันตรรกยะ
ตัวเลข (การแสดงออก) - ตัวเศษของฟังก์ชันตรรกยะ
number_denom(การแสดงออก) - ตัวเศษและตัวหารของฟังก์ชันตรรกยะเป็น a
รายการ
ปฏิบัติการ (การแสดงออก, จำนวน) - แยกตัวถูกดำเนินการจากนิพจน์
อำนาจ (หมดอายุ1, หมดอายุ2) - การยกกำลัง (เทียบเท่ากับการเขียน expr1^expr2)
เปรม(การแสดงออก, การแสดงออก, เครื่องหมาย) - เศษที่เหลือหลอกของพหุนาม
พรีพาร์ท(การแสดงออก, เครื่องหมาย) - ส่วนดั้งเดิมของพหุนาม
เป็น (การแสดงออก, การแสดงออก, เครื่องหมาย) - ผลหารของพหุนาม
อันดับ (เมทริกซ์) - อันดับของเมทริกซ์
เรม (การแสดงออก, การแสดงออก, เครื่องหมาย) - ส่วนที่เหลือของพหุนาม
ผลลัพธ์ (การแสดงออก, การแสดงออก, เครื่องหมาย) - ผลลัพธ์ของพหุนามสองตัวด้วย
เคารพสัญลักษณ์ s
ชุด(การแสดงออก, ความสัมพันธ์หรือสัญลักษณ์, ใบสั่ง) - การขยายซีรีส์
สเปิร์ม(การแสดงออก, การแสดงออก, เครื่องหมาย) - เศษเหลือเทียมของพหุนาม
sqrfree(การแสดงออก [, รายการสัญลักษณ์]) - การแยกตัวประกอบพหุนามแบบไม่มีกำลังสองของพหุนาม
ตารางวา(การแสดงออก) - รากที่สอง
หมวดย่อย(การแสดงออก, ความสัมพันธ์หรือรายการ)
หมวดย่อย(การแสดงออก, มองหารายการ, แทนที่โดยรายการ) - แทนนิพจน์ย่อยแทน (คุณ
อาจใช้สัญลักษณ์แทน)
ทีโคฟฟ์(การแสดงออก, วัตถุ) - สัมประสิทธิ์ต่อท้ายของพหุนาม
เวลา(การแสดงออก) - ส่งกลับเวลาเป็นวินาทีที่จำเป็นในการประเมินค่าที่กำหนด
การแสดงออก
ติดตาม(เมทริกซ์) - ร่องรอยของเมทริกซ์
ย้าย (เมทริกซ์) - ทรานสโพสของเมทริกซ์
ยกเลิกการมอบหมาย ('สัญลักษณ์') - ยกเลิกการกำหนดสัญลักษณ์ที่ได้รับมอบหมาย (โปรดนึกถึงคำพูด!)
หน่วย(การแสดงออก, เครื่องหมาย) - หน่วยของพหุนาม
พิเศษ คำสั่ง
หากต้องการออกจาก ginsh ให้ป้อน
เลิก
or
ทางออก
ginsh สามารถแสดงความช่วยเหลือ (สั้น ๆ) สำหรับหัวข้อที่กำหนด (ส่วนใหญ่เกี่ยวกับฟังก์ชันและตัวดำเนินการ)
โดยเข้า
?หัวข้อ
การพิมพ์
??
จะแสดงรายการหัวข้อวิธีใช้ที่มีอยู่
คำสั่ง
พิมพ์(การแสดงออก);
จะพิมพ์ดัมพ์ของการเป็นตัวแทนภายในของ GiNaC สำหรับการให้ การแสดงออก. นี่คือ
มีประโยชน์สำหรับการดีบักและสำหรับการเรียนรู้เกี่ยวกับ GiNaC ภายใน
คำสั่ง
print_latex(การแสดงออก);
พิมพ์การแสดง LaTeX ของที่กำหนด การแสดงออก.
คำสั่ง
print_csrc(การแสดงออก);
พิมพ์ที่ได้รับ การแสดงออก ในลักษณะที่สามารถใช้ในโปรแกรม C หรือ C++
คำสั่ง
พิมพ์ (การแสดงออก);
พิมพ์ที่ได้รับ การแสดงออก (ซึ่งต้องประเมินเป็นจำนวนเต็ม) เป็นทศนิยม ฐานแปด และ
การแทนค่าเลขฐานสิบหก
ในที่สุด เปลือกก็หนี
! [คำสั่ง [ข้อโต้แย้ง]]
ผ่านที่กำหนด คำสั่ง และเลือกได้ ข้อโต้แย้ง ไปที่เปลือกเพื่อดำเนินการ ด้วยสิ่งนี้
เมธอด คุณสามารถรันคำสั่งเชลล์จากภายใน ginsh โดยไม่ต้องออก
ตัวอย่าง
> a = x^2-x-2;
-2-x+x^2
> b = (x+1)^2;
(x+1)^2
> s = a/b;
(x+1)^(-2)*(-2-x+x^2)
> ความแตกต่าง (s, x);
(2*x-1)*(x+1)^(-2)-2*(x+1)^(-3)*(-x+x^2-2)
> ปกติ(s);
(x-2)*(x+1)^(-1)
> x = 3^50;
717897987691852588770249
> s;
717897987691852588770247/717897987691852588770250
> ตัวเลข = 40;
40
> evalf(s);
0.999999999999999999999995821133292704384960990679
> unassign('x');
x
> s;
(x+1)^(-2)*(-x+x^2-2)
> ซีรีส์(บาป(x),x==0,6);
1*x+(-1/6)*x^3+1/120*x^5+Order(x^6)
> lsolve({3*x+5*y == 7}, {x, y});
{x==-5/3*y+7/3,y==y}
> lsolve({3*x+5*y == 7, -2*x+10*y == -5}, {x, y});
{x==19/8,y==-1/40}
> M = [ [a, b], [c, d] ];
[[-x+x^2-2,(x+1)^2],[ค,ง]]
> ดีเทอร์มิแนนต์(M);
-2*d-2*xx*cx^2*cx*d+x^2*dc
> รวบรวม (%, x);
(-d-2*c)*x+(dc)*x^2-2*dc
> แก้ทฤษฎีสนามควอนตัม
แยกวิเคราะห์ข้อผิดพลาดที่ควอนตัม
> เลิก
วินิจฉัย
แยกวิเคราะห์ข้อผิดพลาดที่ foo
คุณป้อนบางสิ่งที่ ginsh ไม่สามารถแยกวิเคราะห์ได้ โปรดตรวจสอบไวยากรณ์ของ
ข้อมูลของคุณแล้วลองอีกครั้ง
อาร์กิวเมนต์ NUM ไปยัง ฟังก์ชัน จะต้องเป็น ชนิด
หมายเลขอาร์กิวเมนต์ NUM ให้กับ ฟังก์ชัน ต้องเป็นบางประเภท (เช่น a
สัญลักษณ์หรือรายการ) อาร์กิวเมนต์แรกมีหมายเลข 0 อาร์กิวเมนต์ที่สองหมายเลข 1
เป็นต้น
ใช้ ginsh ออนไลน์โดยใช้บริการ onworks.net