সুচিপত্র[লুকান][দেখান]
আপনি একজন বিশ্ববিদ্যালয়ের ছাত্র বা ডেটা সায়েন্সে কাজ করুন না কেন, গণিতের আশেপাশে কোন লাভ নেই।
কেউ হয়তো যুক্তিও দিতে পারে যে ডেটা সায়েন্স হল এক ধরনের ফলিত গণিত/পরিসংখ্যান। NumPy, SciPy, সাইকিট-শিখুন, এবং TensorFlow মাত্র কয়েকটি পাইথন লাইব্রেরি যা গণিতের সাথে পরিমাণগতভাবে কাজ করে।
যাইহোক, গাণিতিক চিহ্নগুলির সাথে স্পষ্টভাবে ডিল করার জন্য শুধুমাত্র একজন প্রতিযোগী রয়েছে: SymPy।
আসুন SymPy সম্পর্কে সব জেনে নেওয়া যাক।
SymPy?
SymPy একটি পাইথন প্রতীকী গণিত গ্রন্থাগার। এটি একটি পূর্ণ বৈশিষ্ট্যযুক্ত কম্পিউটার বীজগণিত সিস্টেম (CAS) হওয়ার আকাঙ্ক্ষা করে এবং কোডটিকে যতটা সম্ভব মৌলিক রেখে বোধগম্য এবং সহজে প্রসারণযোগ্য।
এটি সম্পূর্ণরূপে পাইথনে লেখা। এটি ব্যবহার করা সহজ কারণ এটি শুধুমাত্র mpmath-এর উপর নির্ভর করে, নির্বিচারে ফ্লোটিং-পয়েন্ট পাটিগণিতের জন্য একটি বিশুদ্ধ পাইথন লাইব্রেরি।
একটি লাইব্রেরি হিসাবে, এটি ব্যবহারযোগ্যতার উপর উল্লেখযোগ্য জোর দিয়ে তৈরি করা হয়েছিল। এর অ্যাপ্লিকেশন প্রোগ্রাম ইন্টারফেস (API) এর ডিজাইনে এক্সটেনসিবিলিটি গুরুত্বপূর্ণ।
ফলস্বরূপ, এটি পাইথন ভাষা উন্নত করার কোন চেষ্টা করে না। উদ্দেশ্য হল ব্যবহারকারীরা অন্যদের সাথে এটি ব্যবহার করতে সক্ষম হবেন পাইথন লাইব্রেরি তাদের কর্মপ্রবাহে, একটি ইন্টারেক্টিভ পরিবেশে বা একটি বৃহত্তর সিস্টেমের একটি প্রোগ্রাম করা উপাদান হিসাবে।
SymPy, একটি লাইব্রেরি হিসাবে, একটি অন্তর্নির্মিত গ্রাফিকাল অভাব ব্যবহারকারী ইন্টারফেস (GUI)। লাইব্রেরি হল:
- বিনামূল্যে, বক্তৃতা এবং বিয়ার উভয় ক্ষেত্রেই, কারণ এটি BSD লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।
- পাইথন-ভিত্তিক: এটি সম্পূর্ণরূপে পাইথনে বিকশিত এবং পাইথনকে এর ভাষা হিসাবে নিয়োগ করে।
- লাইটওয়েট কারণ এটি শুধুমাত্র mpmath, একটি বিশুদ্ধ উপর নির্ভর করে পাইথন লাইব্রেরি নির্বিচারে ফ্লোটিং-পয়েন্ট পাটিগণিতের জন্য, এটি ব্যবহার করা সহজ করে তোলে।
- একটি ইন্টারেক্টিভ টুল হিসাবে ব্যবহার করা ছাড়াও অন্যান্য প্রোগ্রামগুলিতে অন্তর্ভুক্ত করা যেতে পারে এবং কাস্টম ফাংশনগুলির সাথে সংশোধন করা যেতে পারে।
কেন SymPy ব্যবহার করবেন?
সেজ, একটি কম্পিউটার বীজগণিত সিস্টেম, এছাড়াও পাইথনকে এর প্রোগ্রামিং ভাষা হিসাবে নিয়োগ করে। অন্যদিকে, ঋষি বিশাল, একটি গিগাবাইটের বেশি ডাউনলোডের প্রয়োজন। এটি হালকা হওয়ার সুবিধা রয়েছে।
কমপ্যাক্ট হওয়ার পাশাপাশি, এটির পাইথন ছাড়া অন্য কোনো নির্ভরতা নেই, এটি ব্যবহারিকভাবে সর্বত্র ব্যবহার করার অনুমতি দেয়।
অধিকন্তু, সেজ এবং সিম্পির লক্ষ্য এক নয়। ঋষি একটি পূর্ণ-বৈশিষ্ট্যযুক্ত গণিত ব্যবস্থা হতে আকাঙ্ক্ষা করেন এবং এটি সমস্ত প্রধান ওপেন-সোর্স গাণিতিক সিস্টেমকে একত্রিত করে তা করে।
যখন আপনি একটি সেজ ফাংশন ব্যবহার করেন, যেমন ইন্টিগ্রেট, এটি এতে থাকা ওপেন-সোর্স প্যাকেজগুলির একটিকে আহ্বান করে। বাস্তবে, এটি সেজে নির্মিত। অন্যদিকে, SymPy একটি স্বয়ংসম্পূর্ণ সিস্টেম হতে আকাঙ্ক্ষা করে, যার মধ্যে সমস্ত কার্যকারিতা প্রয়োগ করা হয়।
একটি গ্রন্থাগার হিসাবে কাজ করার ক্ষমতা একটি গুরুত্বপূর্ণ বৈশিষ্ট্য. অনেক কম্পিউটার বীজগণিত সিস্টেমগুলি ইন্টারেক্টিভ পরিবেশে ব্যবহার করার জন্য বোঝানো হয়, তবে সেগুলি স্বয়ংক্রিয় বা প্রসারিত করা কঠিন।
এটি পাইথনে ইন্টারেক্টিভভাবে ব্যবহার করা যেতে পারে বা আপনার নিজস্ব পাইথন প্রোগ্রামে আমদানি করা যেতে পারে। আপনার নিজের রুটিনগুলির সাথে এটিকে সহজে প্রসারিত করার জন্য এটিতে API রয়েছে৷
SymPy ইনস্টল করা হচ্ছে
আপনার পরিবেশে ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন।
SymPy প্রতীক
এর এখন এটি দিয়ে শুরু করা যাক! এর মৌলিক বস্তু একটি প্রতীক। SymPy তে, আপনি লিখে একটি প্রতীক x তৈরি করতে পারেন:
উপরের কোডটি x চিহ্ন তৈরি করে। এতে চিহ্নগুলি গাণিতিক চিহ্নগুলিকে অনুকরণ করার উদ্দেশ্যে যা অজানা মানগুলিকে প্রতিনিধিত্ব করে৷
ফলস্বরূপ, নিম্নলিখিত গণনাটি নীচে দেখানো হয়েছে:
উপরে দেখানো হিসাবে, x প্রতীকটি অজানা রাশির মতোই কাজ করে। আপনি যদি অনেকগুলি চিহ্ন তৈরি করতে চান তবে সেগুলি নিম্নরূপ লিখুন:
আপনি এই ক্ষেত্রে একই মুহূর্তে দুটি প্রতীক, y, এবং z তৈরি করেছেন। এই চিহ্নগুলি এখন যোগ করা, বিয়োগ করা, গুণ করা এবং ইচ্ছামত ভাগ করা যায়:
SymPy ফাংশন
1. sympify() ফাংশন
sympify() পদ্ধতিটি একটি নির্বিচারে অভিব্যক্তিকে একটি SymPy অভিব্যক্তিতে রূপান্তরিত করে। এটি স্ট্যান্ডার্ড পাইথন বস্তুকে রূপান্তর করে, যেমন পূর্ণসংখ্যা।
স্ট্রিংগুলি তাদের অভিব্যক্তির পাশাপাশি পূর্ণসংখ্যা ইত্যাদিতে রূপান্তরিত হয়।
2. evalf() ফাংশন
এই ফাংশনটি 100টি সংখ্যা পর্যন্ত একটি ফ্লোটিং-পয়েন্ট নির্ভুলতার সাথে একটি নির্দিষ্ট সংখ্যাসূচক অভিব্যক্তিকে মূল্যায়ন করে।
ফাংশন অতিরিক্তভাবে সাবস আর্গুমেন্ট হিসাবে প্রতীকগুলির জন্য সংখ্যাসূচক মান সহ একটি অভিধান বস্তু গ্রহণ করে। নিম্নলিখিত বাক্যাংশ বিবেচনা করুন:
ফ্লোটিং-পয়েন্ট নির্ভুলতা ডিফল্টরূপে 15 সংখ্যায় সেট করা আছে। যাইহোক, এটি 1 থেকে 100 এর মধ্যে যেকোনো সংখ্যায় পরিবর্তন করা যেতে পারে।
নিম্নলিখিত সমীকরণটি 20 সংখ্যার নির্ভুলতার জন্য মূল্যায়ন করা হয়।
3. Lambdify() ফাংশন
Lambdify হল একটি ফাংশন যা এর এক্সপ্রেশনগুলিকে পাইথন ফাংশনে রূপান্তর করে। বিস্তৃত মান জুড়ে একটি অভিব্যক্তি মূল্যায়ন করার সময় evalf() পদ্ধতিটি অদক্ষ।
Lambdify একটি lambda ফাংশনের অনুরূপভাবে কাজ করে, এটি ছাড়া এটি SymPy নামগুলিকে প্রদত্ত সংখ্যাসূচক লাইব্রেরির নামে অনুবাদ করে, যা সাধারণত NumPy হয়।
ডিফল্টরূপে, Lambdify গণিত স্ট্যান্ডার্ড লাইব্রেরি বাস্তবায়নে প্রয়োগ করা হয়।
বৈশিষ্ট্য
লাইব্রেরির সবচেয়ে উল্লেখযোগ্য বৈশিষ্ট্যগুলির একটি মুষ্টিমেয় এখানে তালিকাভুক্ত করা হয়েছে; আরও অনেকগুলি অন্তর্ভুক্ত নয়, তবে আপনি সেগুলি পরীক্ষা করে দেখতে পারেন৷ এখানে.
1. মূল ক্ষমতা
- মৌলিক পাটিগণিত: +, -, *, /, এবং ** অপারেটর সমর্থিত (শক্তি)
- একটি বহুপদ সম্প্রসারণ
- পূর্ণসংখ্যা, যৌক্তিকতা, এবং নির্বিচারে নির্ভুলতার সাথে ভাসমান
- ত্রিকোণমিতিক, হাইপারবোলিক, এবং সূচকীয় ফাংশন, শিকড়, লগারিদম, পরম মান, গোলাকার হারমোনিক্স, ফ্যাক্টোরিয়াল এবং গামা ফাংশন, জেটা ফাংশন, বহুপদ এবং বিশেষ ফাংশন
- যে চিহ্নগুলি পরিবর্তনশীল নয়
- ম্যাচিং নিদর্শন
2. ক্যালকুলাস
- ইন্টিগ্রেশন: এই পদ্ধতিতে সম্প্রসারিত Risch-Norman heuristic নিয়োগ করা হয়
- পৃথকীকরণ.
- ফাংশন সীমিত করুন
- লরেন্ট টেলরের সিরিজ
২. বহুবচন
- গ্রোবনার ফাউন্ডেশন
- আংশিক ভগ্নাংশের পচন
- বিভাগ, gcd ফলাফল মৌলিক পাটিগণিতের উদাহরণ।
4. কম্বিনেটরিক্স
- অনুমান
- গ্রে এবং প্রুফার কোড
- কম্বিনেশন, পার্টিশন, উপসেট
- পলিহেড্রাল, রুবিক, সিমেট্রিক এবং অন্যান্য পারমুটেশন গ্রুপ
5. বিচ্ছিন্ন গণিত
- সমষ্টি
- যৌক্তিক অভিব্যক্তি
- দ্বিপদ সহগ
- সংখ্যা তত্ত্ব
অ্যাপ্লিকেশন
1. বিল্ডিং ক্যালকুলেটর
2. কম্পিউটার বীজগণিত সিস্টেম
অন্যান্য কম্পিউটার বীজগণিত সিস্টেমের বিপরীতে, আপনাকে অবশ্যই Symbol() ফাংশন ব্যবহার করে এতে প্রতীকী ভেরিয়েবল ম্যানুয়ালি ঘোষণা করতে হবে।
3. ক্যালকুলাস
প্রতীকী গণনা পদ্ধতির ক্ষমতা হল প্রতীকীভাবে সমস্ত ধরণের গণনা করার ক্ষমতা।
এটি বিবৃতিকে সহজ করতে পারে, প্রতীকীভাবে, ডেরিভেটিভস, ইন্টিগ্রেল এবং সীমা গণনা করতে পারে, সমীকরণগুলি সমাধান করতে পারে, ম্যাট্রিসের সাথে ইন্টারঅ্যাক্ট করতে পারে এবং আরও অনেক কিছু করতে পারে।
আপনার ক্ষুধা মেটাতে, এখানে প্রতীকী শক্তির স্বাদ রয়েছে।
SymPy দিয়ে আপনি আর কি করতে পারেন?
অতিরিক্ত বিষয়গুলি সম্পর্কে গভীরভাবে চিন্তা করার পরিবর্তে, আমাকে আপনার দক্ষতা বাড়াতে সাহায্য করার জন্য আপনাকে সংস্থানগুলির একটি তালিকা সরবরাহ করতে দিন:
- ম্যাট্রিস এবং রৈখিক বীজগণিত: এটি ম্যাট্রিক্সের সাথে কাজ করতে পারে এবং মৌলিক রৈখিক বীজগণিত অপারেশন করতে পারে। ভাষাটি NumPy এর সিনট্যাক্সের অনুরূপ। যাইহোক, উল্লেখযোগ্য পার্থক্য আছে। শুরু করতে, তদন্ত ম্যাট্রিক্স লাইব্রেরিতে
- এক্সপ্রেশন: এক্সপ্রেশন ট্র্যাক রাখার জন্য এটি একটি এক্সপ্রেশন ট্রি, যা একটি বৃক্ষ-ভিত্তিক কাঠামো, লাভ করে। তাকানো অভিব্যক্তি গাছ আপনি যদি তাদের ভিতরের কাজ সম্পর্কে আরও জানতে চান।
- ডেরিভেটিভস এবং ইন্টিগ্রেল: আপনি একটি পরিচায়ক ক্যালকুলাস ক্লাসে যা শিখবেন তার বেশিরভাগই এটি সম্পন্ন করতে পারে (চিন্তা বিয়োগ)। আপনি আমাদের ফাংশন দেখে শুরু করতে পারেন পৃথকীকরণ SymPy তে।
- NumPy এর সাথে সম্পর্ক: NumPy এবং SymPy উভয়ই গণিত-সম্পর্কিত লাইব্রেরি। তারা, তবুও, মূলত ভিন্ন! NumPy সংখ্যার সাথে কাজ করে, যেখানে এটি প্রতীকী অভিব্যক্তির সাথে কাজ করে।
- সরলীকরণ: এটা স্বয়ংক্রিয়ভাবে অভিব্যক্তি সরলীকরণ যথেষ্ট বুদ্ধিমান. যাইহোক, আপনি যদি এটির উপর আরও সূক্ষ্ম-দানাযুক্ত নিয়ন্ত্রণ চান তবে এটি দেখুন সরলীকরণ.
উপসংহার
SymPy প্রতীকী গণিতের জন্য একটি শক্তিশালী লাইব্রেরি।
আপনি এটিকে ভেরিয়েবল এবং ফাংশন তৈরি করতে ব্যবহার করতে পারেন, পাশাপাশি গাণিতিক বিবৃতিকে প্রতীকীভাবে প্রসারিত ও সরলীকরণ করতে এবং সমীকরণ, অসমতা এবং এমনকি সমীকরণ/বৈষম্যের সিস্টেমগুলি সমাধান করতে পারেন।
আপনি স্ক্রিপ্টের পাঠ্য এবং সরাসরি টার্মিনালে উভয় ফাংশন লিখতে পারেন (বা জুপিটার নোটবুক) একটি দ্রুত মূল্যায়ন এবং সম্পন্ন গণনাগুলির একটি ভাল গ্রাফিকাল চিত্রণ পেতে।
আপনি কি SymPy-এর আরও অন্বেষণ করতে প্রস্তুত? আমাদের মন্তব্য জানাতে।
নির্দেশিকা সমন্ধে মতামত দিন