Posts tagged ম্যাথমেটিকাল

পিএইচপির ম্যাথমেটিক্যাল ফাংশন্স, পর্ব – ২ : সাধারণ ত্রিকোণমিতিক সমস্যার সমাধান

এসএসসি তে ত্রিকোণমিতির বেসিকস বুঝতে বুঝতেই কখন যেন সময় গড়িয়ে গেল।এইচএসসি তে এসে বুঝলাম ত্রিকোণমিতির ঝাল কেমন। সাইন, কোসাইন আর ট্যাঞ্জেন্টের ধারণা মনে রাখাটাই বড় ধরনের কৃতীত্ব মনে হত তখন। কোনটা লম্ব ভাগ অতিভুজ আর কোনটা অতিভুজ ভাগ ভূমি – এই সংজ্ঞাগুলো মনে রাখতে আয়ত্বও করেছিলাম বেশকিছু ছন্দ :P sin30, cos90 ইত্যাদির মানতো কখনই মনে রাখতে পারতাম না। ভাগ্যিস হাতের কাছে ক্যালকুলেটর নামক যন্ত্রখানি সর্বদাই রাখা পড়ত :)

পিএইচপির ম্যাথ ফাংশন্স সিরিজের দ্বিতীয় পর্বে তাই আমরা ত্রিকোণমিতি সম্পর্কিত ফাংশন্সগুলোর দিকে নজর দিতে চাই । পিএইচপির অতি প্রচলিত ৪৮টি ম্যাথ ফাংশনের মধ্যে ১৫টিই ত্রিকোণমিতি সম্পর্কিত । এগুলো হল – acos(), acosh(), asin(), asinh(), atan2(), atan(), atanh(), cos(), cosh(), hypot(), sin(), sinh(), tan(), rad2deg(), tanh() :) এই পর্বটিতে আমরা সাধারণ ত্রিকোণমিতিক ফাংশনগুলোর ব্যবহারিক প্রয়োগ দেখব। অর্থাৎ sin(), cos(), tan() এবং hypot() :D

hypot():
চমৎকার এই ফাংশনটির কথা অনেকেরই অজানা। এটির কাজ সমকোনী ত্রিভূজের অতিভুজ পরিমাপ করা। কিভাবে? নিজেই ব্যবহার করে দেখে নিন:

<?php
// filename: /home/masnun/phpbook/math-2/hypot.php

var_dump( hypot(3,4) ); // Outputs: float(5)
?>

<?php
var_dump( hypot(12,5) ); // Outputs: float(13)
?>

আমরা সমকোনী ত্রিভূজের দুই বাহুর পরিমাপ প্যরামিটার হিসেবে দিলেই এই ফাংশনটি জানিয়ে দেবে অতিভুজের হিসাব। আজ যদি পীথাগোরাস বেচে থাকতেন তবে তিনিও নির্ঘাত পিএইচপি শিখতে চাইতেন অতিভুজ সংক্রান্ত সমস্যাগুলো দ্রুত সমাধান করতে :D কি, একটু বেশিই বলে ফেললাম নাকি ? ;-)

sin():
নাম থেকেই যে ফাংশনের কাজ সম্পর্কে ধারণা করে ফেলেছেন তাতো বুঝতেই পারছি। হ্যা, প্রদত্ত কোণের সাইন অনুপাত নির্ণয় করাই এই ফাংশনের একমাত্র কাজ :)

<?php
// filename: /home/masnun/phpbook/math-2/sin.php

var_dump( sin(90) ); // Outputs: float(0.893996663601)
?>

<?php
var_dump( sin(0) ); // Outputs: float(0)
?>

জ্বি, sin90 এর মান পুরোপুরি ১ নয় :)

cos():
সাইনের পরেই আমরা চলে এলাম কোসাইনের জগতে। কোন কোণের পরিমাপ থেকে তার কোসাইন অনুপাত করতে আমাদের এই ফাংশনটির শরণাপন্ন হতে হয়।

<?php
// filename: /home/masnun/phpbook/math-2/cos.php

var_dump( cos(90) ); // Outputs: float(-0.448073616129)
?>

<?php
var_dump( cos(0) ); // Outputs: float(1)
?>

tan():
সাইন অনুপাতকে কোসাইনের অনুপাত দিয়ে ভাগ করলেই যে ট্যাঞ্জেন্ট অনুপাত পাওয়া যাবে তা আমরা কম বেশি সবাই জানি। কিন্তু, কি দরকার অযথা সময় নষ্ট করার? এই ফাংশনটি থেকে আমরা একবারেই পেয়ে যাব কাংখিত ফলাফল ।

<?php
// filename: /home/masnun/phpbook/math-2/tan.php

var_dump( tan(45) ); // Outputs: float(1.61977519054)
?>

<?php
var_dump( tan(0) ); // Outputs: float(0)
?>

এই লেখাটিতে ব্যবহৃত উদাহরন সমূহ ডাউনলোড করে নিন এখান থেকে — http://bangla-phpbook.googlecode.com/files/math-2.zip

  • Share/Bookmark

পিএইচপির ম্যাথেমেটিকাল ফাংশন্স : পর্ব – ১

ম্যাথ বা গনিতের কথা ভাবলেই আমার মনে পড়ে যায় রাশভারী চেহারার কোন পন্ডিতের কথা। মাঝে মাঝে ভাবতাম যে লোকটা গনিতের সূত্রপাত করেছেন তাকে যদি একবার আমার সামনে পেতাম তাহলে তাকে হাতে কলমে বুঝিয়ে দিতাম গনিত কষার কত মজা :(

কিন্তু পিএইচপি শেখার পর থেকে মনে হয় ম্যাথ বোধহ্য় অতটা খারাপ কিছু না :) পিএইচপি তে আমি পেয়েছি অসাধারন কিছু ম্যাথমেটিকাল ফাংশন্স যেগুলো দিয়ে প্রায় সব ধরনের ম্যাথমেটিকাল প্রবলেম এর সমাধান করা সম্ভব খুব সহজেই :D

আসুন তবে দেখা যাক পিএইচপির গনিতের দৌড় কতদূর :) পিএইচপিতে প্রায় ৫০ টি ম্যাথ ফাংশন্স আছে যেগুলো আমরা কয়েক পর্বে দেখব । প্রথম পর্বে আমরা দেখব abs(), ceil(), floor(), is_finite() এবং is_infinite() – এই ৫ টি ফাংশন্স । তাহলে চলুন শুরু করা যাক।

abs():
যে কোন সংখ্যার ধনাত্নক মান নির্নয় করতে আমরা এই ফাংশনটি ব্যবহার করব। যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-abs.php
$number1 = 11;
echo abs($number1); // outputs: 11
?>

<?php
$number2 = -11;
echo abs($number2); // outputs: 11
?>

ceil():
ভগ্নাংশের মান বৃদ্ধি করে পরবর্তী পূর্ন সংখ্যায় পরিণত করে । যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-ceil.php
$number1 = 3.4;
echo ceil($number1); // Outputs: 4
?>

<?php
$number2 = -3.4;
echo ceil($number2); // Outputs: -3
?>

লক্ষ্য করুন, ঋনাত্নক সংখ্যার ক্ষেত্রে -৩, -৩.৪ অপেক্ষা বৃহত্তর :)

floor():
এটি ঠিক ceil() এর উল্টোটা করে। অর্থাৎ ভগ্নাংশের মান হ্রাস করে পূর্ববর্তী পূর্ন সংখ্যায় পরিণত করে । যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-floor.php
$number1 = 3.4;
echo floor($number1); // Outputs: 3
?>

<?php
$number2 = -3.4;
echo floor($number2); // Outputs: -4
?>

is_finite():
এই ফাংশনটির রিটার্ন ভ্যালু একটি Boolean value । অর্থাৎ যদি প্রদত্ত সংখ্যাটি সসীম হয় তবে এটি True নচেৎ False রিটার্ন করে । সহজভাবে ব্যখ্যা করার জন্য এখানে আমি “সসীম” শব্দটি ব্যবহার করলাম। মূলত, সংখ্যাটি “float” ডাটা টাইপের সীমার ভেতরে আছে কিনা সেটা যাচাই করাই এই ফাংশনটির কাজ । যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-is_finite.php
$number1 = 30003;
var_dump( is_finite($number1) ); // Outputs: bool(true)
?>

<?php
$number2 = log(0);
var_dump( is_finite($number2) ); // Outputs: bool(false)
?>

is_infinite():
আগের ফাংশনটির ঠিক বিপরীত এই ফাংশনটি। এটি নির্দেশ করে প্রদত্ত সংখ্যাটি অসীম কিনা । যেমনঃ

<?php
//filename: /home/masnun/phpbook/math-1-is_infinite.php
$number1 = 30003;
var_dump( is_infinite($number1) ); // Outputs: bool(false)
?>

<?php
$number2 = log(0);
var_dump( is_infinite($number2) ); // Outputs: bool(true)
?>

বিদ্রঃ উপরের দুটি ফাংশনের ব্যবহার দেখাতে গিয়ে আমি log(0) ব্যবহার করেছি । log(0) এর মান অসীম বলে বিবেচিত হ্য় । এটিও পিএইচপির ম্যাথ ফাংশনগুলির মধ্যে গুরুত্বপূর্ন একটি । আমরা পরবর্তী কোন পর্বে এটির ব্যবহার দেখে নিব ।

এই লেখাটিতে ব্যবহৃত পিএইচপি ফাইলগুলো ডাউনলোড করে নিনঃ http://bangla-phpbook.googlecode.com/files/phpbook-math-1.zip

  • Share/Bookmark

পিএইচপি বেসিকস ২ – ম্যাথমেটিকাল অপারেটর সমূহ

ম্যাথমেটিকাল অপারেটর টার্ম টা শুনতে বড়ই খটমট টাইপের লাগলেও আসলে এইটা জলবৎ তরলং মার্কা সহজ একটা জিনিস। এইযে আমরা যোগ, বিয়োগ, গুন, ভাগ করার জন্য যেই সাইন গুলো ব্যবহার করি তাদেরকেই বলে ম্যাথেমেটিকাল অপারেটর। চলুন দেখে নেই পিএইচপিতে সাপোর্টেড ম্যাথেমেটিকাল অপারেটর গুলো, তাদের নাম এবং কাজ

+ এইটা হল সবচেয়ে কঠিন (থুক্কু সহজ) অপারেটর :) এর কাজ হল যোগ করা
- বিয়োগ করার জন্য
* এটা দিয়ে গুন করা হয়, মাল্টিপ্লিকেশন অপারেটর
/ ডিভিশন অপারেটর, ভাগ করার জন্য
% মডুলাস অপারেটর, মনে আছে আমরা ছোটবেলায় পাটিগনিতের অংকে দুটি সংখ্যার ভাগফলের অবশিষ্ট বের করতাম। সেই কাজ করা হয় মডুলাস অপারেটর দিয়ে

অপারেটর প্রিসিডেন্স
এর মানে হল কোন অপারেটর কার আগে কাজ করবে এইটা বলা যায় এইভাবে যে *, / এবং % এর একই রকম প্রিসিডেন্স এবং + ও – আসবে এর পরে। ফলে কোনো স্টেটমেন্ট যদি এমন হয়
১+৫*৩
তাহলে তার ফলাফল হবে ১৬, কারন * কাজ করবে সবার আগে।

মনে আছে ছোটবেলার সেই BODMAS এর কথা, সরল করার সময় বার বার মনে করা লাগত – ওই যে
Bracket Or Division Multiplication Addition Subtraction = BODMAS

:)

এখানেও সেই একই ব্যপার।

  • Share/Bookmark