ভাসমান পয়েন্ট গোলাকার ত্রুটির কারণ কী?


62

আমি সচেতন যে ভাসমান পয়েন্ট গণিতের যথার্থ সমস্যা আছে। আমি সাধারণত সংখ্যার একটি নির্দিষ্ট দশমিক উপস্থাপনায় বা কেবল ত্রুটি উপেক্ষা করে এগুলি পরাভূত করি।

তবে এই অসচ্ছলতার কারণগুলি কী তা আমি জানি না। কেন ভাসমান সংখ্যা নিয়ে এতগুলি রাউন্ডিং ইস্যু রয়েছে?


28
সুনির্দিষ্টভাবে বলতে গেলে, এটি বেশিরভাগ লোককে চিন্তিত করে গোল করার ফলে এটি ঘটেছিল এমন ত্রুটি নয় - এটি সত্য যে বাইনারি ভাসমান-পয়েন্টটি বৃত্তাকার অদম্য আচরণ করে। দশমিক উপস্থাপনে স্যুইচ করা আরও বেশি স্বজ্ঞাত উপায়ে রাউন্ডিং আচরণ করতে পারে তবে বিনিময়ে আপনি প্রায় সর্বদা আপেক্ষিক ত্রুটি বাড়িয়ে তুলবেন (অন্যথায় ক্ষতিপূরণের জন্য সঞ্চয় স্থানটি বাড়িয়ে দিতে হবে)।
ড্যানিয়েল প্রাইডেন

12
: আমার সবচেয়ে সাধারণ বিভ্রান্তি পরিষ্কার করার প্রচেষ্টা floating-point-gui.de
মাইকেল Borgwardt

আমি মনে করি @ ড্যানিয়েলপ্রাইডেন এর অর্থ "" [নির্দিষ্ট পয়েন্ট] উপস্থাপনার দিকে স্যুইচ করা রাউন্ডিংকে আরও স্বজ্ঞাত উপায়ে আচরণ করতে পারে ... " । গোলাকার সমস্যাগুলির কারণ কী , এটি নির্ধারিত বা ভাসমান-পয়েন্ট সংখ্যাগুলির সীমাবদ্ধ শব্দের প্রস্থই হয়। এটি কেবলমাত্র, ভাসমান-পয়েন্ট সহ, বৃত্তাকার ত্রুটির পরিমাণটি সাধারণত গোলাকার হওয়ার সংখ্যার পরিমাণের সাথে প্রায় সমানুপাতিক থেকে যায়। (আপনি যখন সত্যিই ছোট হন এবং "অস্বীকৃত" সংখ্যাগুলি
বাদ দিচ্ছেন except

@ আরবার্ট: আমি যা উল্লেখ করছিলাম ঠিক সেটাই নয়। "ত্রুটি" বেশিরভাগ লোকের ভাসমান পয়েন্টের সাথে দেখা, প্রতি সেচ ভাসমান পয়েন্টের সাথে কিছুই করার নয়, এটিই বেস। আইইইই-754৪ ফ্ল্যাটস এবং ডাবলগুলি বেস ২-তে একটি এক্সপোঞ্জার ব্যবহার করে যার অর্থ ভগ্নাংশের সংখ্যাগুলি 10 (1/1/2 এর চেয়ে নেতিবাচক শক্তির চেয়ে দুটি (1/2, 1/16, 1/1024, ইত্যাদি) এর নেতিবাচক শক্তির সমষ্টি হয়) means ১০, ১/১০০০ ইত্যাদি) এটি ০.০ গোলাকার 0.1000001 এবং অনুরূপ ইস্যুগুলির মতো অপ্রচলিত ফলাফলের দিকে নিয়ে যায়।
ড্যানিয়েল প্রাইডেন

আপনি বেস 10 তে ভাসমান পয়েন্ট সংখ্যাগুলি করতে পারেন - এটি নেট decimal। টাইপের কাজ করে। অন্যদিকে স্থির বিন্দুটি আলাদা। যতক্ষণ না আপনার পরিসর সীমাবদ্ধ থাকে, স্থির পয়েন্টটি উত্তম উত্তর। তবে সীমাবদ্ধ পরিসীমা অনেকগুলি গাণিতিক অ্যাপ্লিকেশনগুলির জন্য নির্দিষ্ট পয়েন্টটিকে অনুপযুক্ত করে তোলে এবং ফলস পয়েন্ট সংখ্যার বাস্তবায়ন প্রায়শই হার্ডওয়্যারে ফলস্বরূপ যথাযথভাবে অনুকূল হয় না।
ড্যানিয়েল প্রাইডেন

উত্তর:


82

এটি কারণ কিছু ভগ্নাংশের বৃত্তাকার ছাড়াই প্রকাশ করার জন্য খুব বড় (বা এমনকি অসীম) পরিমাণের জায়গার প্রয়োজন need এটি বাইনারি বা অন্য কোনও হিসাবে দশমিক স্বীকৃতির জন্য সত্য holds যদি আপনি আপনার গণনার জন্য দশমিক জায়গাগুলির পরিমাণ সীমাবদ্ধ করে রাখেন (এবং ভগ্নাংশ স্বরলিপিতে গণনা করা এড়াতে), আপনার এমনকি একটি সাধারণ প্রকাশটি 1/3 + 1/3 হিসাবে গোল করতে হবে। ফলস্বরূপ 2/3 লেখার পরিবর্তে আপনাকে 0.33333 + 0.33333 = 0.66666 লিখতে হবে যা 2/3 এর মতো নয়।

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

প্রতিটি কম্পিউটার বিজ্ঞানী ভাসমান-পয়েন্ট পাটিগণিত সম্পর্কে যা জানা উচিত


12
চিহ্নিত করা. তবে আমি আরও নোট করব যে দশমিকের মধ্যে শেষ হওয়া কিছু সংখ্যা বাইনারিতে শেষ হয় না। বিশেষত 0.1 বাইনারি মধ্যে একটি পুনরাবৃত্তি সংখ্যা এবং সুতরাং কোন ভাসমান পয়েন্ট বাইনারি সংখ্যা ঠিক 0.1 উপস্থাপন করতে পারে।
জ্যাক এইডলি

4
ভাসমান পয়েন্টগুলি কেবলমাত্র দশমিক অনেক জায়গার জন্য কার্যকর নয়। 32 বিট পূর্ণসংখ্যা কেবল প্রায় 4 বিলিয়ন পর্যন্ত গণনা করতে পারে তবে 32 বিট ভাসমানটি প্রায় অসীম আকারে বড় হতে পারে।
অভি বেকার্ট

7
বিশেষত, সীমাবদ্ধ দশমিক হিসাবে আমরা যে ভগ্নাংশগুলি প্রকাশ করতে পারি সেগুলি হ'ল হ'ল ডিনোমিনেটরগুলির মূল কার্যকারিতা কেবল 2 এবং 5 (উদাহরণস্বরূপ আমরা 3/10 এবং 7/25 প্রকাশ করতে পারি, তবে 11/18 নয়)। যখন আমরা বাইনারিতে চলে যাই, আমরা 5 এর গুণকটি হারাব, যাতে কেবল ডায়াডিক যুক্তি (যেমন 1/4, 3/128) ঠিক প্রকাশ করা যায়।
ডেভিড জাং

70

প্রাথমিকভাবে, গোলাকৃতি ত্রুটিগুলি এই সত্য থেকে আসে যে সমস্ত আসল সংখ্যার অনন্ততাকে সম্ভবত কম্পিউটারের সসীম স্মৃতি দ্বারা প্রতিনিধিত্ব করা যায় না, একক ভাসমান বিন্দু ভেরিয়েবলের মতো মেমরির একটি ক্ষুদ্র টুকরো যাক , তাই অনেকগুলি সঞ্চিত সংখ্যা কেবলমাত্র আনুমানিকই হয় তারা প্রতিনিধিত্ব করতে বোঝানো হয় নম্বর।

যেহেতু কেবলমাত্র সীমিত সংখ্যক মান রয়েছে যা একটি আনুমানিক নয় এবং একটি আনুমানিক এবং অন্য সংখ্যার মধ্যে যে কোনও ক্রিয়াকলাপের একটি সান্নিধ্যের ফলাফল হয়, তাই গোলাকার ত্রুটিগুলি প্রায় অনিবার্য

গুরুত্বপূর্ণ বিষয় হয় বুঝতে পারি যখন তারা কোনো সমস্যা সৃষ্টি করার সম্ভাবনা বেশি এবং ঝুঁকি প্রশমিত পদক্ষেপ নিতে


ছাড়াও ডেভিড গোল্ডবার্গ এর অপরিহার্য কি প্রতিটি কম্পিউটার বিজ্ঞানী জানা উচিত সে বিষয়ে ফ্লোটিং-পয়েন্ট পাটিগণিত (সূর্য / ওরাকল দ্বারা পুনরায় প্রকাশিত তাদের থেকে একটি পরিশিষ্ট হিসাবে সংখ্যাসূচক গণনা গাইড ), যা দ্বারা উল্লেখ করা হয়েছিল Thorsten , ACCU জার্নাল ওভারলোড একটি চমৎকার দৌড়ে ফ্লোটিং পয়েন্ট ব্লুজ সম্পর্কে রিচার্ড হ্যারিসের নিবন্ধগুলির সিরিজ ।

দিয়ে শুরু হয়েছিল ধারাবাহিকটি

সংখ্যার কম্পিউটিংয়ের অনেক সমস্যা রয়েছে। রিচার্ড হ্যারিস সিলভার বুলেট খুঁজতে শুরু করলেন।

সংখ্যাসূচক ত্রুটির ড্রাগন প্রায়শই তার ঘুম থেকে আসে না, তবে যদি অজ্ঞানভাবে যোগাযোগ করা হয় তবে সে মাঝে মাঝে অযৌক্তিক প্রোগ্রামারের গণনার উপর বিপর্যয়িক ক্ষতি সাধন করবে।

এত কিছু যে কিছু প্রোগ্রামাররা, আইইইই 754 এর ভাসমান পয়েন্ট পাথের গাণিতিকের বনগুলিতে তাঁকে অনুসরণ করে, তাদের ফলোগুলিকে সেই ন্যায্য জমিতে ভ্রমণের বিরুদ্ধে পরামর্শ দেয়।

এই সিরিজের নিবন্ধগুলিতে আমরা সংখ্যার কম্পিউটিংয়ের জগতের অন্বেষণ করব, এটির জন্য নিরাপদ প্রতিস্থাপন হিসাবে প্রস্তাবিত কিছু কৌশলগুলির সাথে বিপরীতে ভাসমান পয়েন্ট পাটিগণিত। আমরা শিখব যে ড্রাগনের অঞ্চল সত্যই সুদূরপ্রসারী এবং আমরা যদি তার বিধ্বংসী মনোযোগকে ভয় করি তবে সাধারণভাবে আমাদের অবশ্যই যত্ন সহকারে পদক্ষেপ নিতে হবে।

রিচার্ড বাস্তব সংখ্যাগুলির সংজ্ঞা, যুক্তিবাদী, অযৌক্তিক, বীজগণিতিক এবং ট্রান্সসেন্টেন্টাল ব্যাখ্যা দিয়ে শুরু করেন। তারপরে তিনি বাতিল করার ত্রুটি এবং মৃত্যুদণ্ডের সমস্যার ক্রমটি চালিয়ে যাওয়ার আগে, আইইইই 7575৫ প্রতিনিধিত্ব ব্যাখ্যা করতে চলেছেন।

আপনি যদি এর থেকে আরও গভীরতর না পড়েন তবে আপনার ভাসমান পয়েন্ট সংখ্যার সাথে সম্পর্কিত সমস্যাগুলির মধ্যে একটি দুর্দান্ত গ্রাউন্ডিং থাকবে।

আপনি যদি আরও জানতে চান তবে তিনি চালিয়ে যান

তারপরে তিনি আপনার ক্যালকুলাস ব্লুজ নিরাময়ে আপনাকে সাহায্য করার চেষ্টা করছেন to

এবং শেষ কিন্তু কমপক্ষে না, আছে

নিবন্ধগুলির পুরো সিরিজটি সন্ধানের পক্ষে ভাল এবং মোট pages 66 পৃষ্ঠায় এগুলি এখনও গোল্ডবার্গের কাগজের pages 77 পৃষ্ঠার চেয়ে ছোট ।

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


হিসাবে যখন এইসব কথা বলছিলেন AK মন্তব্য উল্লেখ করেছে:

এই নিবন্ধগুলির লেখক হিসাবে আমি উল্লেখ করতে চাই যে আমি আমার ব্লগ www.thusspakeak.com এ থসস্পেকাক . com/ak/2013/ 06 দিয়ে শুরু করে সেগুলির ইন্টারেক্টিভ সংস্করণগুলি তৈরি করেছি ।


1
এই নিবন্ধগুলির লেখক হিসাবে আমি উল্লেখ করতে চাই যে আমি আমার ব্লগ www.thusspakeak.com এ থসস্পেকাক ডটকম /ak/2013/ 06 থেকে শুরু করে সেগুলির ইন্টারেক্টিভ সংস্করণগুলি তৈরি করেছি ।
এইভাবে এ কে

ধন্যবাদ @ থস্পপেকা.কে। আমি আমার উত্তরে একটি নোট যুক্ত করেছি এবং এই ইন্টারেক্টিভ উপাদানগুলি খুব সুন্দরভাবে কাজ করে।
মার্ক বুথ

12

ঠিক আছে, থারস্টেনের সুনির্দিষ্ট লিঙ্ক আছে । আমি যোগ করব:

উপস্থাপনের যে কোনও ফর্মের কিছু সংখ্যার জন্য কিছু গোলাকার ত্রুটি থাকবে। আইইইইই ভাসমান পয়েন্টে বা দশমিক দশমিক ৫/২ প্রকাশ করার চেষ্টা করুন। এটি সঠিকভাবে করতে পারে না। এটি আপনার প্রশ্নের উত্তর দেওয়ার বাইরে চলেছে, তবে আমি থাম্বের এই নিয়মটি সফলভাবে ব্যবহার করেছি:

  • ব্যবহারকারীর দ্বারা প্রবেশ করা মানগুলি দশমিক দশায় সঞ্চয় করুন (কারণ তারা এটি অবশ্যই একটি দশমিক উপস্থাপনায় প্রবেশ করেছিল - খুব কম ব্যবহারকারী বাইনারি বা হেক্স ব্যবহার করবেন)। এই ভাবে আপনার কাছে সর্বদা সঠিক ব্যবহারকারী-উপস্থাপনা থাকে।
  • যদি আপনাকে ব্যবহারকারীর দ্বারা প্রবেশ করা ভগ্নাংশ সংরক্ষণ করতে হয় তবে অংক এবং ডিনোমিনেটর সংরক্ষণ করুন (দশমিকের মধ্যেও)
  • যদি আপনার একই পরিমাণের (যেমন সেলসিয়াস / ফারেনহাইট) পরিমাপের একাধিক ইউনিট সহ একটি সিস্টেম থাকে এবং ব্যবহারকারী উভয়ই প্রবেশ করতে পারেন, তারা যে মানটি লিখেছেন এবং যে ইউনিটগুলিতে তারা প্রবেশ করেছে তা সংরক্ষণ করতে পারে convert রূপান্তর করার চেষ্টা করবেন না এবং সংরক্ষণ হিসাবে সংরক্ষণ করবেন না নির্ভুলতা / নির্ভুলতার ক্ষতি ছাড়াই আপনি এটি করতে না পারলে একটি একক উপস্থাপনা। সমস্ত গণনায় সঞ্চিত মান এবং ইউনিটগুলি ব্যবহার করুন ।
  • আইইইই ভাসমান পয়েন্টে মেশিনের উত্পন্ন মানগুলি (এটি কোনও এ / ডি রূপান্তরকারী সহ এনালগ সেন্সরের মতো কোনও বৈদ্যুতিন পরিমাপ ডিভাইস দ্বারা উত্পন্ন সংখ্যাগুলি হতে পারে, বা গণনার সীমাহীন ফলাফল হতে পারে)। মনে রাখবেন যে আপনি যদি সিরিয়াল সংযোগের উপর সেন্সর পড়ছেন এবং এটি ইতিমধ্যে আপনাকে দশমিক বিন্যাসে মূল্য দেয় (যেমন 18.2 সি) this
  • দশমিক (ব্যাঙ্ক অ্যাকাউন্ট ব্যালেন্সের মতো) ব্যবহারকারীর দ্বারা দেখা যায় এমন মোট মোট সঞ্চয় করুন। যথাযথভাবে গোল করুন, তবে ভবিষ্যতের সমস্ত গণনার জন্য সেই মানটি নির্ধারিত মান হিসাবে ব্যবহার করুন।

আমি যোগ করব: এআরপিআরসি বা ডিকনবারের মতো একটি স্বেচ্ছাচারিতা-যথার্থ গণিত প্যাকেজটি ব্যবহার করার বিষয়ে বিবেচনা করুন।
ব্লারফ্লায়

আমি দশমিক নেই (বাইনারিটির বিপরীতে) পূর্ণসংখ্যার মানগুলির জন্য অনেক বেশি সুবিধা পেয়েছি যেমন একটি ভগ্নাংশের অঙ্ক এবং ডিনোমিনেটর। হয় সঠিক সংখ্যার মান সংরক্ষণ করতে পারে এবং বাইনারি আরও দক্ষ। ইনপুট এবং আউটপুটটির জন্য পিছনে পিছনে রূপান্তর করার জন্য কিছু ব্যয় রয়েছে, তবে এটি শারীরিকভাবে I / O সম্পাদন করতে ব্যয় করে সজ্জিত হতে পারে।
কিথ থম্পসন

10

এখনও অবধি যা উল্লেখ করা হয়নি বলে মনে হয় তা হ'ল অস্থির অ্যালগরিদমের ধারণা এবং একটি অসুস্থ শর্তযুক্ত সমস্যা । আমি প্রাক্তনটিকে প্রথমে সম্বোধন করব, যেহেতু মনে হয় নবজাতীয় সংখ্যাবিদদের জন্য এটি আরও ঘন ঘন প্রবণতা।

(পারস্পরিক) সুবর্ণ অনুপাতের শক্তিগুলির গণনা বিবেচনা করুন φ=0.61803…; এটির একটি সম্ভাব্য উপায় হ'ল পুনরাবৃত্তি সূত্রটি ব্যবহার φ^n=φ^(n-2)-φ^(n-1)করা φ^0=1এবং এর মাধ্যমে শুরু করা φ^1=φ। আপনি যদি আপনার প্রিয় কম্পিউটিং পরিবেশে এই পুনরাবৃত্তিটি চালান এবং ফলাফলগুলি নির্ভুল মূল্যায়িত শক্তির সাথে তুলনা করেন, আপনি উল্লেখযোগ্য পরিসংখ্যানগুলির একটি ধীরে ধীরে ক্ষয় পাবেন। ম্যাথমেটিকায় উদাহরণস্বরূপ যা ঘটে তা এখানে :

ph = N[1/GoldenRatio];  
Nest[Append[#1, #1[[-2]] - #1[[-1]]] & , {1, ph}, 50] - ph^Range[0, 51]  
{0., 0., 1.1102230246251565*^-16, -5.551115123125783*^-17, 2.220446049250313*^-16, 
-2.3592239273284576*^-16, 4.85722573273506*^-16, -7.147060721024445*^-16, 
1.2073675392798577*^-15, -1.916869440954372*^-15, 3.1259717037102064*^-15, 
-5.0411064211886014*^-15, 8.16837916750579*^-15, -1.3209051907825398*^-14, 
2.1377864756200182*^-14, -3.458669982359108*^-14, 5.596472721011714*^-14, 
-9.055131861349097*^-14, 1.465160458236081*^-13, -2.370673237795176*^-13, 
3.835834102607072*^-13, -6.206507137114341*^-13, 1.004234127360273*^-12, 
-1.6248848342954435*^-12, 2.6291189633497825*^-12, -4.254003796798193*^-12, 
6.883122762265558*^-12, -1.1137126558640235*^-11, 1.8020249321541067*^-11, 
-2.9157375879969544*^-11, 4.717762520172237*^-11, -7.633500108148015*^-11, 
1.23512626283229*^-10, -1.9984762736468268*^-10, 3.233602536479646*^-10, 
-5.232078810126407*^-10, 8.465681346606119*^-10, -1.3697760156732426*^-9, 
2.216344150333856*^-9, -3.5861201660070964*^-9, 5.802464316340953*^-9, 
-9.388584482348049*^-9, 1.5191048798689004*^-8, -2.457963328103705*^-8, 
3.9770682079726053*^-8, -6.43503153607631*^-8, 1.0412099744048916*^-7, 
-1.6847131280125227*^-7, 2.725923102417414*^-7, -4.4106362304299367*^-7, 
7.136559332847351*^-7, -1.1547195563277288*^-6}

এর জন্য প্রত্যাশিত ফলাফলটির φ^41ভুল চিহ্ন রয়েছে, এবং এর আগেও, গণিত এবং প্রকৃত মান φ^39ভাগ করে নেওয়ার জন্য সাধারণ কোনও সংখ্যা নেই ( 3.484899258054952* ^ - 7 for the computed version against the true value7.071019424062048 *^-9)। অ্যালগরিদমটি এইভাবে অস্থিতিশীল এবং একটিকে এই অবিশ্বাস্য সূত্রটি অনর্থক গাণিতিক ব্যবহার করা উচিত নয়। এটি পুনরাবৃত্তির সূত্রের অন্তর্নিহিত প্রকৃতির কারণে: এই পুনরাবৃত্তির একটি "ক্ষয়" এবং "ক্রমবর্ধমান" সমাধান রয়েছে এবং বিকল্প "বাড়ন্ত" সমাধানটি ভিক্ষা করার সময় অগ্রবর্তী সমাধান দ্বারা "ক্ষয়" সমাধান গণনা করার চেষ্টা করা হচ্ছে সংখ্যার দুঃখের জন্য এইভাবে তার নিশ্চিত করা উচিত যে তার সংখ্যার অ্যালগোরিদম স্থিতিশীল are

এখন, একটি শর্তসাপেক্ষিত সমস্যার ধারণাটি নিয়ে : সংখ্যাগতভাবে কিছু করার জন্য একটি স্থিতিশীল উপায় থাকতে পারে তবে এটি খুব ভাল হতে পারে যে আপনার সমস্যাটি কেবলমাত্র আপনার অ্যালগোরিদম দ্বারা সমাধান করা যায় না। এটি নিজেই সমস্যার দোষ, এবং সমাধানের পদ্ধতি নয়। সংখ্যার মধ্যে আধ্যাত্মিক উদাহরণটি তথাকথিত "হিলবার্ট ম্যাট্রিক্স" এর সাথে জড়িত রৈখিক সমীকরণগুলির সমাধান:

হিলবার্ট ম্যাট্রিক্স

ম্যাট্রিক্স একটি অসুস্থ শর্তযুক্ত ম্যাট্রিক্সের আধ্যাত্মিক উদাহরণ : একটি বৃহত হিলবার্ট ম্যাট্রিক্স সহ একটি সিস্টেমকে সমাধান করার চেষ্টা করার ফলে একটি ভুল সমাধান ফিরে আসতে পারে।

এখানে একটি গাণিতিক প্রদর্শন: সঠিক গাণিতিকের ফলাফলগুলি তুলনা করুন

Table[LinearSolve[HilbertMatrix[n], HilbertMatrix[n].ConstantArray[1, n]], {n, 2, 12}]
{{1, 1}, {1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 
  1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1,
   1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}}

এবং অনর্থক পাটিগণিত

Table[LinearSolve[N[HilbertMatrix[n]], N[HilbertMatrix[n].ConstantArray[1, n]]], {n, 2, 12}]
{{1., 1.}, {1., 1., 1.}, {1., 1., 1., 1.}, {1., 1., 1., 1., 1.},  
  {1., 1., 1., 1., 1., 1.}, {1., 1., 1., 1., 1., 1., 1.}, 
  {1., 1., 1., 1., 1., 1., 1., 1.}, {1., 1., 1., 1., 1., 1., 1., 1., 1.},  
  {1., 1., 1., 0.99997, 1.00014, 0.999618, 1.00062, 0.9994, 1.00031, 
  0.999931}, {1., 1., 0.999995, 1.00006, 0.999658, 1.00122, 0.997327, 
  1.00367, 0.996932, 1.00143, 0.999717}, {1., 1., 0.999986, 1.00022, 
  0.998241, 1.00831, 0.975462, 1.0466, 0.94311, 1.04312, 0.981529, 
  1.00342}}

(যদি আপনি ম্যাথমেটিকাতে চেষ্টা করে দেখেন তবে আপনি কিছু ত্রুটি বার্তাগুলি নষ্ট করবেন যা অসুস্থ-কন্ডিশনার উপস্থিতির সতর্ক করে দিয়েছে))

উভয় ক্ষেত্রে, কেবল নির্ভুলতা বাড়ানো কোনও নিরাময় নয়; এটি কেবল পরিসংখ্যানগুলির অনিবার্য ক্ষয়কে বিলম্ব করবে।

এটি আপনার মুখোমুখি হতে পারে। সমাধানগুলি কঠিন হতে পারে: প্রথমত, হয় আপনি ড্রয়িং বোর্ডে ফিরে যান, বা জার্নাল / বইয়ের মাধ্যমে ন্যায্যতা / যা কিছু খুঁজে পেতে পারেন যা আপনার চেয়ে আরও ভাল সমাধান নিয়ে এসেছে কিনা; দ্বিতীয়টির জন্য, আপনি হয় ছেড়ে দিন, বা আরও ট্র্যাকটেবল কিছুতে আপনার সমস্যার সংশোধন করুন।


আমি তোমাকে ডায়ান ও'লিয়ারির একটি উদ্ধৃতি দিয়ে রেখে দেব:

জীবন আমাদের কিছু শর্তযুক্ত সমস্যা টস করতে পারে তবে অস্থির অ্যালগরিদমের জন্য নিষ্পত্তি করার কোনও ভাল কারণ নেই।


9

কারণ বেস 10 দশমিক সংখ্যাগুলি বেস 2 তে প্রকাশ করা যায় না

বা অন্য কথায় 1/10 ডিনোমিনেটরে 2 এর শক্তির সাথে ভগ্নাংশে রূপান্তরিত করা যায় না (যা মূলত ভাসমান পয়েন্ট সংখ্যাগুলি হ'ল)


11
ঠিক সত্য নয়: 0.5 এবং 0.25 টি বেস 2 তে প্রকাশ করা যেতে পারে বলে আমি মনে করি আপনি "সমস্ত বেস 10 দশমিক সংখ্যা নয়" বলতে চাইছেন।
স্কট হুইটলক

3
আরো সুক্ষ্ণভাবে. ভাসমান পয়েন্ট নোটেশনটি ব্যবহার করে সমস্ত ভগ্নাংশের সংখ্যাটি হুবহু উপস্থাপন করা যায় না (উদাহরণস্বরূপ। উভয় বেস 2 এবং বেস 10 এর এই সঠিক সমস্যা রয়েছে)। 9*3.3333333দশমিকের চেষ্টা করুন এবং করুন এবং এটিকে 9*3 1/3
মার্টিন ইয়র্ক

1
এটি ভাসমান-পয়েন্ট বিভ্রান্তির সবচেয়ে সাধারণ উত্স। .1 + .1 != .2কারণ ভাসমান-পয়েন্ট বাইনারি এনকোডিং ব্যবহৃত হয়, দশমিক নয়।
শান ম্যাকমিলান

@ সানমিসিমিলান: এবং 1.0/3.0*3.0 != 1.0, কারণ ভাসমান-পয়েন্ট বাইনারি এনকোডিং ব্যবহৃত হয়, ট্রাইনারি নয়।
কিথ থম্পসন

8

গণিতে অনেকগুলি যুক্তিযুক্ত সংখ্যা রয়েছে। একটি 32 বিট ভেরিয়েবলের কেবল 2 32 টি পৃথক মান থাকতে পারে এবং একটি 64 বিট ভেরিয়েবল কেবল 2 64 মান থাকতে পারে। অতএব, অসীম অনেকগুলি যুক্তিযুক্ত সংখ্যা রয়েছে যার কোনও যথাযথ উপস্থাপনা নেই।

আমরা এমন স্কীম নিয়ে আসতে পারি যা আমাদের 1/3 নিখুঁতভাবে বা 1/100 উপস্থাপন করতে দেয়। দেখা যাচ্ছে যে অনেক ব্যবহারিক উদ্দেশ্যে এটি খুব কার্যকর নয়। একটি বড় ব্যতিক্রম আছে: ফিনান্সে, দশমিক ভগ্নাংশ প্রায়শই পপ আপ করে। এটি বেশিরভাগ কারণেই ফিনান্স মূলত একটি মানবিক ক্রিয়াকলাপ, কোনও দৈহিক নয়।

অতএব, আমরা সাধারণত বাইনারি ভাসমান বিন্দু ব্যবহার করতে পছন্দ করি এবং বাইনারিতে প্রতিনিধিত্ব করা যায় না এমন কোনও মানকে গোল করে। তবে ফিনান্সে আমরা মাঝে মাঝে দশমিক ভাসমান বিন্দু এবং নিকটতম দশমিক মানের জন্য গোল মান পছন্দ করি।


2
আরও খারাপ, যদিও একটি অসীম (অগণিত) অসামান্য পরিমাণ মেমরি একজনকে সমস্ত যুক্তি উপস্থাপন করতে সক্ষম করে, এটি বাস্তবের প্রতিনিধিত্ব করার পক্ষে যথেষ্ট নয়। এমনকি আরও খারাপ, বাস্তবের প্রায় সবগুলিই সংখ্যা গণনাযোগ্য সংখ্যা নয়। সীমাবদ্ধ পরিমাণের মেমরির সাথে আমরা যা করতে পারি তা হ'ল বাস্তবের সীমাবদ্ধ পরিসীমাটি to
ডেভিড হ্যামেন

4
@ কেভিন: আপনি গণনাযোগ্য সংখ্যাগুলির বিষয়ে কথা বলছেন, যা বাস্তবের একটি ক্ষুদ্র উপসেট (পরিমাপ শূন্যের একটি উপসেট)।
ডেভিড হামেন

1
সর্বাধিক প্রাথমিক ব্যাখ্যার জন্য +1: আপনি সীমিত সংখ্যক বিট সহ সংখ্যার সংখ্যার প্রতিনিধিত্ব করার চেষ্টা করছেন।
রাকু

1
@ ডেভিডহ্যামেন: গণনাযোগ্য সংখ্যা হ'ল বাস্তবের একটি ক্ষুদ্র উপসেট (পরিমাপ শূন্যের) - তবে আপনি যে প্রোগ্রামে কখনও কাজ করবেন তার প্রতিটি সংখ্যাই সংজ্ঞা অনুসারে, গণনাযোগ্য।
কিথ থম্পসন

3
@Giorgio: আপনি সঠিক উপস্থাপনা চয়ন করেন তাহলে, 2 এর বর্গমূল হয় representable, উদাহরণস্বরূপ, স্ট্রিং হিসেবে "√2"। (আমার পুরাতন এইচপি -৮৮ ক্যালকুলেটরটি ঠিক তা করতে সক্ষম হয়েছিল এবং সেই মানটি বর্গাকারে ঠিক ফলস্বরূপ হয়েছিল 2.0। যে কোনও সীমাবদ্ধ প্রতিনিধিত্বের জন্য প্রতিনিধিত্বমূলক বাস্তব সংখ্যার কেবল একটি অগণিত অসীম রয়েছে - তবে কোনও গণনা এমন কোনও সংখ্যা আনতে পারে না যা, নীতিগতভাবে, উপস্থাপনযোগ্য। অনুশীলনে, বাইনারি ফ্লোটিং-পয়েন্ট প্রতীকী উপস্থাপনার তুলনায় জ্বলন্ত গতি এবং ছোট স্টোরেজের সুবিধার সাথে উপস্থাপনযোগ্য সংখ্যার সেটকে মারাত্মকভাবে সীমাবদ্ধ করে।
কিথ থম্পসন

-2

ভাসমান-পয়েন্ট সংখ্যাগুলির সাথে একমাত্র সত্যই সুস্পষ্ট "রাউন্ডিং ইস্যু" হ'ল চলন্ত গড় ফিল্টারগুলি সহ:

$$ \ শুরু {প্রান্তিককরণ} y [n] & = \ frac {1} {N} \ যোগফল \ সীমা__ = i = 0} ^ {এন -1} x [নি]] = & = y [এন -1] + rac frac {1} {N} (x [n] - x [nN]) \ \ শেষ {সারিবদ্ধ} $$

গোলমাল না বাড়িয়ে এই কাজটি করার জন্য, আপনি নিশ্চিত করতে চান যে আপনি যে বর্তমান samples x [n] samples যুক্ত করেছেন সেগুলি অবশ্যই samples x [nN] এর মতো as আপনি $ N $ নমুনাগুলিকে বিয়োগ করতে পারবেন ভবিষ্যত। যদি এটি না হয় তবে কি আলাদা তা হল একটি সামান্য টারড যা আপনার বিলম্বের লাইনে আটকে যায় এবং কখনই বের হয় না। কারণ এই মুভিং এভারেজ ফিল্টারটি আসলে একটি আইআইআর দিয়ে নির্মিত যা একটি stable z = 1 at এ একটি প্রান্তিক স্থিতি পোল এবং একটি শূন্য যা এটি ভিতরে বাতিল করে দেয়। তবে, এটি একটি ইন্টিগ্রেটার এবং যে কোনও ক্র্যাপ যা সংহত হয় এবং সম্পূর্ণরূপে সরানো হয় না তা চিরকালের জন্য ইন্টিগ্রেটার যোগে উপস্থিত থাকবে। এখানেই স্থির-পয়েন্টের একই সমস্যা নেই যা ভাসমান-পয়েন্ট সংখ্যাগুলি করে।


আরে,। LaTeX $ গণিত মার্কআপ কাজ করে না প্রগতি.এস ফোরামে ??? এটা সত্যিই খোঁড়া হয় না যদি।
রবার্ট ব্রিস্টো-জনসন

1
দেখুন meta.SO এই এবং লিঙ্ক প্রশ্ন
AakashM
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.