বৃহত স্পার্স ম্যাট্রিক্সের ক্ষুদ্রতম ইগেনভেেক্টর সন্ধান করা, অক্টভেভের তুলনায় সায়পাই-তে 100x ধীর গতির


12

আমি বৃহত্তর প্রতিসম স্কয়ার স্পার্স-ম্যাট্রিকেস (30000x30000 অবধি) এর ক্ষুদ্রতম ইগেনালুগুলির সাথে সামঞ্জস্যপূর্ণ কয়েকটি (5-500) ইগেনভেেক্টর গণনা করার চেষ্টা করছি যা 0.1% এর চেয়ে কম মান শূন্য নয়।

আমি বর্তমানে scipy.sparse.linalg.eigsh শিফট-ইনভার্ট মোডে (সিগমা = 0.0) ব্যবহার করছি, যা আমি এই বিষয়ের বিভিন্ন পোস্টের মাধ্যমে সন্ধান করেছি fe তবে বেশিরভাগ ক্ষেত্রে সমস্যাটি সমাধান করতে 1 ঘন্টা পর্যন্ত সময় লাগে। অন্যদিকে ফাংশনটি খুব দ্রুত, যদি আমি বৃহত্তম ইগেনুয়ালুগুলি (আমার সিস্টেমে সাব সেকেন্ড) জিজ্ঞাসা করি, যা ডকুমেন্টেশন থেকে প্রত্যাশিত ছিল।

যেহেতু আমি কাজ থেকে মতলবের সাথে বেশি পরিচিত, আমি অক্টাভাতে সমস্যাটি সমাধান করার চেষ্টা করেছি, যা আমাকে কয়েক সেকেন্ডে (সিগমা = 0) ব্যবহার করে একই ফলাফল দিয়েছে (কয়েক দশকে সাব 10)। যেহেতু আমি ইগেনভেেক্টর গণনা সহ অ্যালগরিদমের একটি প্যারামিটার সুইপ করতে চাই, সেই ধরণের সময় লাভ অজগরটিতেও দুর্দান্ত হবে।

আমি প্রথম প্যারামিটারগুলি পরিবর্তন করেছি (বিশেষত সহনশীলতা), কিন্তু টাইমসেকলে খুব বেশি পরিবর্তন হয়নি।

আমি উইন্ডোজে অ্যানাকোন্ডা ব্যবহার করছি, তবে স্কিপি দ্বারা ব্যবহৃত ল্যাপাক / বিএলএএস (যা একটি বিশাল ব্যথা ছিল) থেকে এমপিএল (ডিফল্ট অ্যানাকোন্ডা) থেকে ওপেনব্লাসে (ডকুমেন্টেশন অনুসারে অ্যাক্টেভ দ্বারা ব্যবহৃত) স্যুইচ করার চেষ্টা করেছি, তবে কোনও পরিবর্তন দেখতে পেল না কর্মক্ষমতা.

আমি বুঝতে পেরেছিলাম না, ব্যবহৃত আরপ্যাক (এবং কীভাবে) সম্পর্কে কিছু পরিবর্তন করার দরকার আছে কিনা?

আমি নিম্নলিখিত ড্রপবক্স-ফোল্ডারে কোডের জন্য একটি টেস্টকেস আপলোড করেছি: https://www.roidbox.com/sh/l6aa6izufzyzqr3/AABqij95hZOvRpnnjRaETQmka?dl=0

পাইথনে

import numpy as np
from scipy.sparse import csr_matrix, csc_matrix, linalg, load_npz   
M = load_npz('M.npz')
evals, evecs = linalg.eigsh(M,k=6,sigma=0.0)

অষ্টাভে:

M=dlmread('M.txt');
M=spconvert(M);
[evecs,evals] = eigs(M,6,0);

কোন সাহায্য প্রশংসিত হয়!

মন্তব্য এবং পরামর্শের উপর ভিত্তি করে আমি কয়েকটি অতিরিক্ত বিকল্প চেষ্টা করেছিলাম:

অষ্টাভে: eigs(M,6,0)এবং eigs(M,6,'sm')আমাকে একই ফলাফল দিন:

[1.8725e-05 1.0189e-05 7.5622e-06 7.5420e-07 -1.2239e-18 -2.5674e-16]

যখন eigs(M,6,'sa',struct('tol',2))রূপান্তর

[1.0423 2.7604 6.1548 11.1310 18.0207 25.3933] 

অনেক দ্রুত, তবে কেবল যদি সহনশীলতার মান 2 এর উপরে হয় তবে অন্যথায় এটি মোটেও রূপান্তরিত হয় না এবং মানগুলি দৃ strongly়ভাবে পৃথক হয়।

পাইথন: eigsh(M,k=6,which='SA')এবং eigsh(M,k=6,which='SM')উভয়ই একত্রিত হয় না (কোনও কনভার্জেন্সে এআরপ্যাক ত্রুটি পৌঁছায় না)। শুধুমাত্র eigsh(M,k=6,sigma=0.0)কিছু ইগেনভ্যালু দেয় (প্রায় এক ঘন্টার পরে), যা ক্ষুদ্রতমগুলির জন্য অষ্টভরের চেয়ে পৃথক (এমনকি আরও 1 টি অতিরিক্ত ছোট মান পাওয়া যায়):

[3.82923317e-17 3.32269886e-16 2.78039665e-10 7.54202273e-07 7.56251500e-06 1.01893934e-05]

যদি সহনশীলতা যথেষ্ট পরিমাণে থাকে তবে আমি এর থেকে ফলাফলও পাই eigsh(M,k=6,which='SA',tol='1')যা অন্যান্য প্রাপ্ত মানগুলির কাছাকাছি আসে

[4.28732218e-14 7.54194948e-07 7.56220703e-06 1.01889544e-05, 1.87247350e-05 2.02652719e-05]

আবার বিভিন্ন সংখ্যক ছোট ইগন্যালুয়েস সহ গণনার সময় এখনও প্রায় 30 মিনিট। যদিও বিভিন্ন খুব ছোট মানগুলি বোধগম্য হয়, যেহেতু তারা 0 এর গুণককে উপস্থাপন করতে পারে, বিভিন্ন গুণটি আমাকে বিভ্রান্ত করে।

তদ্ব্যতীত, সায়পি এবং অষ্টাভেতে কিছু মৌলিক পার্থক্য রয়েছে বলে মনে হচ্ছে, যা আমি এখনও বুঝতে পারি না।


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

1 - হ্যাঁ ঠিক, আমি আমার পোস্টটি সম্পাদনা করেছি। 2 - আমি আমার উপাত্তের কিছু সাব-ম্যাট্রিকগুলির জন্য পারফরম্যান্সটি চেষ্টা করে দেখেছি মনে হয় যে অষ্টাভ সবসময় দ্রুত, তবে 5000x5000 এর নীচে ছোট ম্যাট্রিকগুলির জন্য এটি 2-5 বারের কেবল একটি ফ্যাক্টর, এটি সত্যিই কুৎসিত হয়ে যায়। এবং এর "আসল ডেটা" যেহেতু আমি জেনারেটরের স্ক্রিপ্ট দিতে পারি না। কোনও উপায়ে আপলোড করার কোনও স্ট্যান্ডার্ড উপায় আছে কি? স্পারসিটির কারণে, একটি এনপিজেড-ফাইল যুক্তিসঙ্গতভাবে ছোট।
স্পেসকিলার 23

আমার ধারণা আপনি যে কোনও ক্লাউড স্টোরেজ সুবিধার একটি লিঙ্ক ভাগ করতে পারেন।
পটল 75

ধন্যবাদ. আমি মূল পোস্টে একটি ড্রপবক্স লিঙ্ক অন্তর্ভুক্ত করেছি এবং কোডটিকে একটি কার্যকারী উদাহরণে আপডেট করেছি।
স্পেসকিলার 23

1
আপনার বক্তব্যকে আরও শক্তিশালী করার জন্য আমি মাতলাব আর ২০১৯ বি তে পরীক্ষা করেছি এবং পাইথন ৩. in, স্কিপি ২.২.১ (২ times গুণ বেশি দ্রুত) এ 84৪.৫ মিনিট বনাম seconds৪ সেকেন্ড পেয়েছি।
বিল

উত্তর:


1

একটি অনুমান এবং কিছু মন্তব্য, যেহেতু আমার কাছে মতলব / অষ্টাভ নেই:

আপনার মতো ইগেনভ্যালু> = 0 এর সাথে প্রতিসামগ্রী ম্যাট্রিকের ছোট ছোট আইগেনুয়ালুগুলি সন্ধান করতে, নীচেরটি শিফট-ইনভার্টের চেয়ে দ্রুত ওয়াএ:

# flip eigenvalues e.g.
# A:     0 0 0 ... 200 463
# Aflip: 0 163 ... 463 463 463
maxeval = eigsh( A, k=1 )[0]  # biggest, fast
Aflip = maxeval * sparse.eye(n) - A
bigevals, evecs = eigsh( Aflip, which="LM", sigma=None ... )  # biggest, near 463
evals = maxeval - bigevals  # flip back, near 463 -> near 0
# evecs are the same

eigsh( Aflip )বড় ইগেনপেইসের জন্য ছোটের জন্য শিফট-ইনভার্টের চেয়ে দ্রুত হয়, কারণ শিফট-ইনভার্টটি অবশ্যই করা উচিতের A * xচেয়ে দ্রুত solve()। মাতলাব / Aflipঅষ্টাভ কলসকির সাথে ইতিবাচক-সুনির্দিষ্ট জন্য দ্রুত পরীক্ষার পরে স্বতঃস্ফূর্তভাবে এটি করতে পারে could
আপনি কি eigsh( Aflip )মতলব / অষ্টাভে চালাতে পারবেন ?

নির্ভুলতা / গতিতে প্রভাব ফেলতে পারে এমন অন্যান্য কারণগুলি:

শুরু ভেক্টরের জন্য আরপ্যাকের ডিফল্ট v0একটি এলোমেলো ভেক্টর। আমি ব্যবহার করি v0 = np.ones(n)যা কারওর জন্য ভয়ানক হতে পারে Aতবে তা পুনরুত্পাদনযোগ্য :)

এই Aম্যাট্রিক্স প্রায় হুবহু, A * ones~ 0।

মাল্টিকোর: ওপেনব্লাস / ল্যাপ্যাক সহ স্কিপি-আরপ্যাকটি আমার আইম্যাকের 4 টি কোরের ~ 3.9 ব্যবহার করে; মতলব / অষ্টাভ সমস্ত কর ব্যবহার করে?


এখানে বেশ কয়েকটি স্কিপি-আরপ্যাক ইগেনভ্যালু kএবং tolজিস্ট.github এর অধীনে লগফাইলে গ্রেপ করা হয়েছে :

k 10  tol 1e-05:    8 sec  eigvals [0 8.5e-05 0.00043 0.0014 0.0026 0.0047 0.0071 0.0097 0.013 0.018] 
k 10  tol 1e-06:   44 sec  eigvals [0 3.4e-06 2.8e-05 8.1e-05 0.00015 0.00025 0.00044 0.00058 0.00079 0.0011] 
k 10  tol 1e-07:  348 sec  eigvals [0 3e-10 7.5e-07 7.6e-06 1.2e-05 1.9e-05 2.1e-05 4.2e-05 5.7e-05 6.4e-05] 

k 20  tol 1e-05:   18 sec  eigvals [0 5.1e-06 4.5e-05 0.00014 0.00023 0.00042 0.00056 0.00079 0.0011 0.0015 0.0017 0.0021 0.0026 0.003 0.0037 0.0042 0.0047 0.0054 0.006
k 20  tol 1e-06:   73 sec  eigvals [0 5.5e-07 7.4e-06 2e-05 3.5e-05 5.1e-05 6.8e-05 0.00011 0.00014 0.00016 0.0002 0.00025 0.00027 0.0004 0.00045 0.00051 0.00057 0.00066
k 20  tol 1e-07:  267 sec  eigvals [-4.8e-11 0 7.5e-07 7.6e-06 1e-05 1.9e-05 2e-05 2.2e-05 4.2e-05 5.1e-05 5.8e-05 6.4e-05 6.9e-05 8.3e-05 0.00011 0.00012 0.00013 0.00015

k 50  tol 1e-05:   82 sec  eigvals [-4e-13 9.7e-07 1e-05 2.8e-05 5.9e-05 0.00011 0.00015 0.00019 0.00026 0.00039 ... 0.0079 0.0083 0.0087 0.0092 0.0096 0.01 0.011 0.011 0.012
k 50  tol 1e-06:  432 sec  eigvals [-1.4e-11 -4e-13 7.5e-07 7.6e-06 1e-05 1.9e-05 2e-05 2.2e-05 4.2e-05 5.1e-05 ... 0.00081 0.00087 0.00089 0.00096 0.001 0.001 0.0011 0.0011
k 50  tol 1e-07: 3711 sec  eigvals [-5.2e-10 -4e-13 7.5e-07 7.6e-06 1e-05 1.9e-05 2e-05 2.2e-05 4.2e-05 5.1e-05 ... 0.00058 0.0006 0.00063 0.00066 0.00069 0.00071 0.00075

versions: numpy 1.18.1  scipy 1.4.1  umfpack 0.3.2  python 3.7.6  mac 10.10.5 

মতলব / অষ্টাভ কি একই রকম? যদি তা না হয় তবে সমস্ত বেট বন্ধ রয়েছে - প্রথমে নির্ভুলতা পরীক্ষা করুন, তারপরে গতি দিন।

ইগেনভ্যালুগুলি এত বেশি কাঁপছে কেন? অনুমিত-অ-নেতিবাচক-নির্দিষ্ট ম্যাট্রিক্সের জন্য ক্ষুদ্র <0 টি রাউন্ডঅফ ত্রুটির একটি লক্ষণ , তবে একটি ছোট শিফ্টের স্বাভাবিক কৌশল A += n * eps * sparse.eye(n), সাহায্য করে না।


এটি Aকোথা থেকে আসে, কোন সমস্যা অঞ্চল? আপনি কি অনুরূপ A, আরও ছোট বা স্পারসার তৈরি করতে পারেন ?

আশাকরি এটা সাহায্য করবে.


আপনার ইনপুট জন্য ধন্যবাদ এবং (খুব) দেরী জবাব জন্য দুঃখিত। আমি এটির জন্য যে প্রকল্পটি ব্যবহার করেছি এটি ইতিমধ্যে সম্পূর্ণ, তবে আমি এখনও আগ্রহী, তাই আমি যাচাই করেছি। দুঃখের বিষয়, ওকেটভে ইগেনভ্যালুগুলি আলাদা হয়, কে = 10 এর জন্য আমি [-2.5673e-16 -1.2239e-18 7.5420e-07 7.5622e-06 1.0189e-05 1.8725e-05 2.0265e-05 2.1568e- # 4.2458e-05 5.1030e-05] যা 1e-5 থেকে 1e-7 পরিসীমা সহনশীলতার মান থেকেও স্বতন্ত্র। সুতরাং এখানে অন্য একটি পার্থক্য আছে। আপনি কি আশ্চর্যজনক মনে করেন না যে স্কিপি (আপনার পরামর্শ সহ) অনুসন্ধান করা মানগুলির সংখ্যার উপর নির্ভর করে বিভিন্ন ছোট মান দেয়?
স্পেসকিলার 23

@ স্পেসকিলার ২৩, এটি একটি বাগ ছিল, এখন স্কিপি ১.৪.১ এ স্থির হয়েছে ( স্কিপি / ইস্যুগুলি / ১১১৯৮ দেখুন ); আপনি কি আপনার সংস্করণ পরীক্ষা করতে পারেন? এছাড়াও tolছোট eigenvalues জন্য নোংরা হয় - যদি আপনি চান, আমাকে জানাতে যে একটি নতুন প্রশ্ন জিজ্ঞাসা করুন।
ডানিস

1

আমি জানি এটি এখন পুরানো, তবে আমারও একই সমস্যা ছিল। আপনি কি এখানে পর্যালোচনা করেছেন ( https://docs.scipy.org/doc/scipy/references/tutorial/arpack.html )?

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


এটি কি আপনার জন্য কার্য সম্পাদন পরিবর্তন করেছে? এটা আমার জন্য একটি আশ্চর্য হতে হবে। আপনি যে লিঙ্কটি পোস্ট করেছেন তা আমি জানতাম এবং আমার উদাহরণে আমি কোন = 'এলএম' স্পষ্টভাবে উল্লেখ করেছি। কারণ একটি আনসেটের ডিফল্ট মান যা 'এলএম'। যদিও আমি এখনও যাচাই করেছি এবং আমার উদাহরণটির জন্য পারফরম্যান্স অপরিবর্তিত রয়েছে।
স্পেসকিলার 23

সত্যই, পাইথন থেকে আপনার জন্য অষ্টভর মতো একই পার্থক্য রয়েছে বলে মনে হয়। আমার কাছে একটি বৃহত ম্যাট্রিক্সও ছিল যা আমি পচন করার চেষ্টা করছিলাম এবং আইগ্স (ম্যাট্রিক্স, কে = 7, যা = 'এলএম', সিগমা = 1 ই -10) ব্যবহার করে শেষ হয়েছি। মূলত আমি ভুলটি নির্দিষ্ট করেছিলাম যেটি = 'এসএম' ভেবে আমার সবচেয়ে ক্ষুদ্রতম স্থানীয় মূল্যবোধ পাওয়ার জন্য এটি করা দরকার এবং আমাকে উত্তর দেওয়ার জন্য এটি চিরতরে নিচ্ছিল। তারপরে, আমি এই নিবন্ধটি পেয়েছি এবং বুঝতে পেরেছি যে আপনার এটি কেবল দ্রুত 'এলএম' এ নির্দিষ্ট করার দরকার ছিল এবং k কে আপনি যা চান সেট করতে সেট করুন এবং এটি জিনিসগুলিকে গতি বাড়িয়ে তুলবে। আপনার ম্যাট্রিক্স আসলে হারমেটিয়ান?
অ্যান্টনি গাট্টি

0

আমি প্রথমে বলতে চাই যে আপনি এবং @ বিলে যে ফলাফল দিয়েছেন সেগুলি কেন তা আমার কোনও ধারণা নেই। আমি কেবল আশ্চর্য কি eigs(M,6,0)অষ্টাভের সাথে মিলে যায় k=6 & sigma=0, বা সম্ভবত এটি অন্য কিছু?

স্কিপি সহ, আমি সিগমা না দিলে, আমি এইভাবে একটি শালীন সময়ে ফলাফল পেতে পারি।

import numpy as np
from scipy.sparse import csr_matrix
from scipy.sparse.linalg import eigsh
from time import perf_counter
M = np.load('M.npz')
a = csr_matrix((M['data'], M['indices'], M['indptr']), shape=M['shape'])
t = perf_counter()
b, c = eigsh(a, k=50, which='SA', tol=1e1)
print(perf_counter() - t)
print(b)

আমি যদিও পুরোপুরি নিশ্চিত নই যদিও এটি বোধগম্য হয়।

0.4332823531003669
[4.99011753e-03 3.32467891e-02 8.81752215e-02 1.70463893e-01
 2.80811313e-01 4.14752072e-01 5.71103821e-01 7.53593653e-01
 9.79938915e-01 1.14003837e+00 1.40442848e+00 1.66899183e+00
 1.96461415e+00 2.29252666e+00 2.63050114e+00 2.98443218e+00
 3.38439528e+00 3.81181747e+00 4.26309942e+00 4.69832271e+00
 5.22864462e+00 5.74498014e+00 6.22743988e+00 6.83904055e+00
 7.42379697e+00 7.97206446e+00 8.62281827e+00 9.26615266e+00
 9.85483434e+00 1.05915030e+01 1.11986296e+01 1.18934953e+01
 1.26811461e+01 1.33727614e+01 1.41794599e+01 1.47585155e+01
 1.55702295e+01 1.63066947e+01 1.71564622e+01 1.78260727e+01
 1.85693454e+01 1.95125277e+01 2.01847294e+01 2.09302671e+01
 2.18860389e+01 2.25424795e+01 2.32907153e+01 2.37425085e+01
 2.50784800e+01 2.55119112e+01]

সিগমা ব্যবহার করার জন্য এবং একটি শালীন সময়ে ফলাফল পাওয়ার একমাত্র উপায় হ'ল এমকে লিনিয়ারপ্লেষক হিসাবে সরবরাহ করা। আমি এই জিনিসটির সাথে খুব বেশি পরিচিত নই, তবে আমার বাস্তবায়ন যা বুঝেছিল তা থেকে একটি পরিচয় ম্যাট্রিক্সের প্রতিনিধিত্ব হয়, যা কলটিতে নির্দিষ্ট না হলে এমটি হওয়া উচিত। এর কারণ হ'ল সরাসরি সমাধান (এলইউ পচে যাওয়া) সম্পাদন করার পরিবর্তে স্কিপি একটি পুনরাবৃত্ত সমাধানকারী ব্যবহার করবে, এটি সম্ভাব্যতরভাবে উপযুক্ত। তুলনা হিসাবে, যদি আপনি সরবরাহ করেন M = np.identity(a.shape[0])যা হুবহু একই হওয়া উচিত, তবে ফলশ্রুতি পেতে eigsh চিরকাল লাগে। নোট করুন যে সরবরাহ করা থাকলে এই পদ্ধতির কাজ হয় না sigma=0। তবে আমি নিশ্চিত নই sigma=0যে সত্যিই এটি দরকারী কিনা ?

import numpy as np
from scipy.sparse import csr_matrix
from scipy.sparse.linalg import eigs, eigsh, LinearOperator
from time import perf_counter


def mv(v):
    return v


M = np.load('M.npz')
a = csr_matrix((M['data'], M['indices'], M['indptr']), shape=M['shape'])
t = perf_counter()
b, c = eigsh(a, M=LinearOperator(shape=a.shape, matvec=mv, dtype=np.float64),
             sigma=5, k=50, which='SA', tol=1e1, mode='cayley')
print(perf_counter() - t)
print(np.sort(-5 * (1 + b) / (1 - b)))

আবার, এটি সঠিক না হলেও ধারণা নেই তবে অবশ্যই আগে থেকে আলাদা। স্কিপি থেকে কারও ইনপুট পাওয়া দুর্দান্ত হবে।

1.4079377939924598
[3.34420263 3.47938816 3.53019328 3.57981026 3.60457277 3.63996294
 3.66791416 3.68391585 3.69223712 3.7082205  3.7496456  3.76170023
 3.76923989 3.80811939 3.81337342 3.82848729 3.84137264 3.85648208
 3.88110869 3.91286153 3.9271108  3.94444577 3.97580798 3.98868207
 4.01677424 4.04341426 4.05915855 4.08910692 4.12238969 4.15283192
 4.16871081 4.1990492  4.21792125 4.24509036 4.26892806 4.29603036
 4.32282475 4.35839271 4.37934257 4.40343219 4.42782208 4.4477206
 4.47635849 4.51594603 4.54294049 4.56689989 4.58804775 4.59919363
 4.63700551 4.66638214]

আপনার ইনপুট এবং প্রতিক্রিয়া জন্য আপনাকে ধন্যবাদ। আমি আপনার বিষয়গুলির একটি শালীন উত্তর দেওয়ার জন্য কিছু জিনিস চেষ্টা করেছিলাম। 1. আমার হাতের কাজটির জন্য কে সবচেয়ে ছোট এগেনভ্যালু / ভেক্টর সন্ধান করা প্রয়োজন। এর জন্য সিগমা = 0 ব্যবহারের পদ্ধতির জন্য এমনকি সাইপপি ডক্সেও দেওয়া হয়েছে: ডকসস.স্কিপি.আর.ডোক / স্কিপি / রেফারেন্স / টিউটোরিয়াল / অ্যাপপ্যাক্ট.এইচটিএমএল ২. আমি আরও কিছু বিকল্প চেষ্টা করে দেখলাম, যা আমি আসল প্রশ্নে সম্পাদনা করেছি। ৩. আমি যেমন অক্টোবায় এবং সায়পাইয়ের ডকুমেন্টারিগুলি বুঝতে পারি, eigs (এম, 6,0) এবং কে = 6, সিমগা = 0 একই হওয়া উচিত।
স্পেসকিলার 23

৪. যেহেতু আমার ম্যাট্রিক্সটি আসল এবং বর্গক্ষেত্র, আমি ভেবেছিলাম বিকল্প হিসাবে এসএ এবং এসএম এর মধ্যে কোনও আলাদা হওয়া উচিত নয়, তবে কমপক্ষে কমপ্লেটে অবশ্যই আছে। আমি কি এখানে ভুল পথে আছি? সামগ্রিকভাবে এর অর্থ আরও প্রশ্ন এবং তবে আমার কাছ থেকে আসল উত্তর বা সমাধান নেই।
স্পেসকিলার 23
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.