কোনও ম্যাট্রিক্স ইতিবাচক অর্ধ-নির্দিষ্ট কিনা তা পরীক্ষা করা হচ্ছে


12

আমি একটি তালিকা আছে এল আমি ইতিবাচক আধা definiteness জন্য চেক করতে প্রয়োজন যে প্রতিসম ম্যাট্রিক্সের (অর্থাত তাদের eigenvalues অ নেতিবাচক হয়।)

উপরের মন্তব্যে বোঝা যাচ্ছে যে কোনও ব্যক্তি এটি সম্পর্কিত নেতিবাচক গণনা করে এবং তারা অ-নেতিবাচক কিনা তা পরীক্ষা করে এটি করতে পারে (সম্ভবত গোলাকার ত্রুটির যত্ন নিতে হবে।)

আমার দৃশ্যে ইগেনভ্যালুগুলি গণনা করা বেশ ব্যয়বহুল তবে আমি লক্ষ্য করেছি যে আমি যে লাইব্রেরিটি ব্যবহার করছি তা ইতিবাচক নিশ্চিতকরণের জন্য যথেষ্ট দ্রুত পরীক্ষা করেছে (এটি যদি ম্যাট্রিক্সের ইগনাল্যগুলি কঠোরভাবে ইতিবাচক হয়))

অত: পর ধারণা হবে, যে একটি ম্যাট্রিক্স দেওয়া , এক পরীক্ষার হলে বি + + ε আমি ইতিবাচক নির্দিষ্ট হয়। যদি তা না হয় তবে বি ইতিবাচক আধা-সুনির্দিষ্ট নয়, অন্যথায় কেউ এটির ইতিবাচক আধা-সুনির্দিষ্ট কিনা তা নিশ্চিত করার জন্য বি এর ইগেনালভগুলি গণনা করতে পারে ।বিএলবি+ +εআমিবিবি

আমার প্রশ্ন এখন:

কোনও ম্যাট্রিক্স ইতিবাচক আধা-সুনির্দিষ্ট কিনা তা পরীক্ষার আরও প্রত্যক্ষ এবং দক্ষ উপায় আছে, যদি সরবরাহিত হয় যে ইতিবাচক সুনির্দিষ্টতার জন্য একটি দক্ষ পরীক্ষা দেওয়া হয়?


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


1
যারা আরো knowledgable এখানে লোকেরা - এটা যোগ করে বর্ণালী নামান ইতিবাচক হতে কাজ করবে বড় জন্য , তারপর স্থানান্তরিত ব্যবস্থার সর্বনিম্ন eigenvalue এটি (যেমন বিপরীত পুনরাবৃত্তির সঙ্গে), তারপর যদি ক্ষুদ্রতম eigenvalue পরীক্ষা শিফট সিস্টেমটি শিফট সি এর চেয়ে ছোট ? শিফট সি হতে পারে, উদাহরণস্বরূপ, আকারের ইগন্যালুতে বৃহত্তম যা দ্রুত পাওয়া যায়। বি+ +আমি
নিক অ্যালজার

হ্যাঁ, আপনি ইগনাল্যুগুলি স্থানান্তর করতে পারেন এবং ক্ষুদ্রতম এগেনুয়ালুটি গণনা করতে পারেন তবে আপনি যা গ্রহণ করবেন তার জন্য আপনার কিছুটা সহনশীলতা নির্ধারণ করার সমস্যা রয়েছে (এবং আপনার ইগনালভ্যালুগুলি কমপক্ষে সেই সহনশীলতার সাথে গণনা করা হয়েছে তা নিশ্চিত করে!)
ব্রায়ান বোরচার্স

এটি সহায়ক হবে কিনা তা নিশ্চিত নন তবে নোট করুন যে একবার আপনি যদি কোনও ম্যাট্রিক্স জানেন তবে এটি ইতিবাচক নির্দিষ্ট নয়, এটি পরীক্ষা করার জন্য আপনাকে কেবল এটির কার্নেলটি খালি নেই কিনা তা পরীক্ষা করতে হবে।
আবেল মোলিনা

উত্তর:


23

"পজিটিভ সেমিডেফাইনেট" বা "পজিটিভ সুনির্দিষ্ট" সম্পর্কে আপনার কাজের সংজ্ঞা কী? ভাসমান পয়েন্ট গণিতের ক্ষেত্রে, আপনাকে এর জন্য একরকম সহনশীলতা নির্দিষ্ট করতে হবে।

আপনি ম্যাট্রিক্সের গণিত ইগেনভ্যালুগুলির ক্ষেত্রে এটি সংজ্ঞায়িত করতে পারেন। যাইহোক, যদি আপনি প্রথম নোটিশ একটি ম্যাট্রিক্স স্কেল ম্যাট্রিক্স সঙ্গে সুসংগত এর নির্ণিত eigenvalues, যাতে উদাহরণস্বরূপ, ম্যাট্রিক্স আমি গুন দ্বারা পেতে যে উচিত এক মিলিয়ন একটি গুণক দ্বারা তার eigenvalues একটি মিলিয়ন দ্বারা গুন করা হয়েছে। কি λ = - 1.0 একটি নেতিবাচক eigenvalue? যদি আপনার ম্যাট্রিক্সের অন্যান্য অন্যান্য ইগেনালুগুলি ইতিবাচক হয় এবং 10 30 এর ক্রম অনুসারে , তবে λ = - 1.0 কার্যকরভাবে 0 হয় এবং এটি একটি নেতিবাচক এগেনভ্যালু হিসাবে গণ্য করা উচিত নয়। এইভাবে স্কেলিংটিকে অ্যাকাউন্টে নেওয়া গুরুত্বপূর্ণ important একজনλ=-1.01030λ=-1.0

একজন যুক্তিবাদী পদ্ধতির আপনার ম্যাট্রিক্স eigenvalues গনা, এবং ঘোষণা করছি যে ম্যাট্রিক্স সংখ্যাসূচকভাবে ইতিবাচক semidefinite হলে সব eigenvalues চেয়ে বড় হয় হয় যেখানে λ সর্বোচ্চ বৃহত্তম eigenvalue হয়। -ε|λসর্বোচ্চ|λসর্বোচ্চ

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

আপনার যদিও এটির সাথে সাবধানতা অবলম্বন করা উচিত, কারণ পদ্ধতির সাথে কিছু সমস্যা রয়েছে। উদাহরণস্বরূপ, এমন পরিস্থিতি রয়েছে যেখানে এবং বি ইতিবাচকভাবে দৃ .়ভাবে বোঝায় যে তাদের ভাসমান বিন্দু কোলেস্কি ফ্যাক্টরীকরণ রয়েছে তবে ( + বি ) / ২ তে কোলেস্কি ফ্যাক্টেরাইজেশন নেই। সুতরাং "ভাসমান পয়েন্ট কলসকি ফ্যাক্টরিজেবল পজিটিভ সুনির্দিষ্ট ম্যাট্রিকেস" এর সেটটি উত্তল নয়! একজনবি(একজন+ +বি)/2


আপনি কি সেই শেষ অনুচ্ছেদে বিস্তারিত বলতে বা কোনও উত্সের লিঙ্ক পোস্ট করতে পারেন? এটা বেশ উদ্ভট।
ড্যানিয়েল শাপেরো

2
এক্সএক্স+ +αΔএক্সএক্স+ +0.95αΔএক্স

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

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

3

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

0

@ ব্রায়ান বোর্চার্সের পরামর্শের জন্য পাইথন, কোলেস্কির পচন চেষ্টা করুন:

from sksparse.cholmod import cholesky, CholmodNotPositiveDefiniteError
    # https://scikit-sparse.readthedocs.io/en/latest/cholmod.html

def testposdef( A, beta=1e-6, pr="" ):
    """ try cholesky( a scipy.sparse matrix  + beta I )

    Why A + beta I, beta say 1e-6 ?
    If A has tiny eigenvalues, 0 to within machine precision,
    about half of these "zeros" may be negative -- tough on solvers.
    Also the condition number improves to ~ rho(A) / beta.
    """
    try:
        solve = cholesky( A, beta=beta )  # A + beta I
        if pr:
            print( "%s + %g I is positive-definite" % (pr, beta ))
        return solve  # x = solve( b )
    except CholmodNotPositiveDefiniteError:
        if pr:
            print( "%s + %g I is not positive-definite" % (pr, beta ))
        return False
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.