এমন কি এমন কোনও সফ্টওয়্যার রয়েছে যা প্রতীকী সূত্র থেকে সংখ্যাগত-নির্ভুল ভাসমান পয়েন্ট সি রুটিনগুলি স্বয়ংক্রিয়ভাবে তৈরি করতে পারে?


25

রিয়েল ভেরিয়েবলের একটি আসল ফাংশন দেওয়া, এমন কোনও সফ্টওয়্যার উপলব্ধ আছে যা আইইইই 754 পাটিগণিত দিয়ে সজ্জিত কোনও মেশিনের সমস্ত ইনপুটগুলির জন্য ফাংশন গণনা করার জন্য স্বয়ংক্রিয়ভাবে সংখ্যাসূচক-সঠিক কোড তৈরি করতে পারে?

উদাহরণস্বরূপ, যদি মূল্যায়নের জন্য আসল ফাংশনটি হয়:

f (a, b, c) = \ frac {-b - \ sqrt {b ^ 2 - 4ac}} {2a

সফ্টওয়্যারটি গণ্য নির্ভুলতার ক্ষতি এড়াতে বিপর্যয়কর বাতিল এবং সম্ভাব্য আউটপুটগুলির নির্দিষ্ট সেটগুলির জন্য সারণী অনুসন্ধানগুলি বিবেচনা করবে।

বিকল্পভাবে, এমন কোনও সফ্টওয়্যার রয়েছে যা প্রদত্ত ফাংশনটি উচ্চ নির্ভুলতার সাথে গণনা করার জন্য খাঁটি টেবিল-ভিত্তিক লুকিং রুটিন তৈরি করতে পারে?


5
সাধারণভাবে সমস্যা।
ডিএমেকে

1
যদি সমস্যাটি নির্দিষ্টভাবে পলিনোমের মূল গণনা (বা ফ্যাক্টেরাইজেশন) সম্পর্কে হত তবে সেখানে কিছু সি (বা সি ++) লাইব্রেরি রয়েছে।
মোয়ালা

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

উত্তর:


25

আমার জানা সবচেয়ে ভাল সমাধানটি হল ম্যাথমেটিকা , ম্যাপেল বা সিমপাইতে প্রতীকী এক্সপ্রেশনগুলি প্রোগ্রাম করা ; সমস্ত লিঙ্কগুলি সরাসরি কোড উত্পন্নকরণের ডকুমেন্টেশনে যায়। উপরের সমস্ত প্রোগ্রাম সি বা ফোর্টরানে কোড উত্পন্ন করতে পারে।

উপরের কোনও প্রোগ্রামেই আইইইই 754 পাটিগণিতের নির্ভুলতার উল্লেখ করে না; সাধারণভাবে, @dmckee নোট অনুসারে বিপর্যয়কর বাতিলকরণের সমস্ত উত্সের প্রত্যাশা করা কঠিন হবে। সংখ্যা বিশ্লেষণে মানুষের দক্ষতা প্রতিস্থাপন করা শক্ত।

একটি কংক্রিট উদাহরণ প্রদান করার জন্য, নির্বিচারে ইনপুট জন্য উচ্চ স্পষ্টতা করার ত্রিকোণমিতিক ফাংশন গণক বিবেচনা । এটি করার জন্য অনেক কৌশল রয়েছে, কিছু এমনকি হার্ডওয়্যার নির্ভর, যেমন উইকিপিডিয়া নিবন্ধে ট্রাইগনোমেট্রিক টেবিলগুলি দেখুন । সমস্ত অ্যালগরিদমের মধ্যে দক্ষতা এবং সংখ্যা বিশ্লেষণের প্রয়োজন হয়, এমনকি আলগোরিদিমগুলি যা লুকিং টেবিল এবং টেলর সিরিজ বা ইন্টারপোলেশনের উপর নির্ভর করে (উইকিপিডিয়া নিবন্ধটি টেবিল-নির্মাতার দ্বিধা দেখুন )। আরও তথ্যের জন্য, সম্পর্কিত স্ট্যাক ওভারফ্লো প্রশ্ন দেখুন ত্রিগনোমেট্রিক ফাংশন কীভাবে কাজ করে? [0,2π]

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


4
"সংখ্যা বিশ্লেষণে মানুষের দক্ষতার প্রতিস্থাপন করা কঠিন"। - এটি একা এক +1 প্রাপ্য।
জেএম

"এটা কঠিন" "অসম্ভব" এর মতো একই জিনিস নয়। কিছু কাজের জন্য রয়েছে "সম্পূর্ণ কর্মসংস্থান উপপাদ্য" (যেমন সংকলক লেখক)। সংখ্যার বিশ্লেষকদের জন্য কি এখানে রয়েছে?
ছদ্মনাম


14

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

প্রদত্ত , খুঁজুন আর এবং গুলি সি যেমন যে,সিআরগুলিসি

,

আর(,গুলি)[]=[গুলি-গুলি¯][]=[R0]

যেখানে একক। ধারাবাহিকতার মতো আরও সূক্ষ্ম ইস্যুগুলির সাথে গণ্য দক্ষতার সাথে নির্ভরযোগ্যতার ভারসাম্য বজায় রাখা অত্যন্ত অনানুষ্ঠানিক এবং দুর্দশাগ্রস্ত ভবিষ্যতে স্বয়ংক্রিয় হওয়ার সম্ভাবনা কম।আর(,গুলি)


1
+1 এটি একটি দুর্দান্ত উদাহরণ, আপনাকে ধন্যবাদ। আমার ধারণা, বাস্তবের জন্য যদি কোনও সমাধান বিদ্যমান থাকে, তবে এটি জটিল সংখ্যায় অভিযোজিত হতে পারে।
ড্যানিয়েল ট্রেবিয়েন

আমার সম্ভবত উল্লেখ করা উচিত যে মৌলিক অসুবিধাটি যে জটিল হতে পারে তা নয়, তবে অপ্রয়োজনীয় ওভারফ্লো এবং / বা আন্ডারফ্লো এড়ানোতে নয়। এটা তোলে hypot ফাংশন সঙ্গে সম্পর্কযুক্ত: en.wikipedia.org/wiki/Hypot
জ্যাক Poulson

11

কোড জেনারেশন এবং গাণিতিক এক্সপ্রেশনগুলির পূর্ববর্তীকরণ আরও জনপ্রিয় হয়ে উঠছে।

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

প্রতীকী এবং সংখ্যাসূচক উভয়ই আগ্রহী এমন আরও কয়েকটি প্রকল্প রয়েছে যা দেখে নিতে পারেন।

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

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

তবে এই ক্ষেত্রে বৃদ্ধি উত্সাহজনক। একজন আশাবাদী হতে পারে যে আপনার প্রশ্নের কয়েক বছরের মধ্যে আরও ভাল উত্তর হবে।


2
একমত; সম্ভবত আমার উত্তরটি খুব হতাশাবোধ হিসাবে প্রকাশিত হয়েছে, কারণ এখানে প্রচুর ডোমেন নির্দিষ্ট সমাধান রয়েছে, তবে সাধারণ সমস্যাটি হ'ল ... শক্ত hard
জ্যাক পলসন

4

সাধারণভাবে নয়, আমি নিরাপদে বলতে পারি সিমপাই-তে কোড জেনারেটরের প্রয়োগকারী = পিও চেষ্টা করেননি।

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

দেখুন এই কাগজ , অথবা একটি আর কাজ নোট সংস্করণ


1

সাগে আপনি Cython (পাইথন যে সি কোড জেনারেট করে একটি বৈকল্পিক) এ সূত্র প্রকাশ করতে দেয়; তবে আপনার আরও সাধারণ প্রশ্নের উত্তরে: না। রাইসের উপপাদ্যটি বিবেচনা করুন ।

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