পুরানো প্রশ্ন তবে যেহেতু আমি একই সমস্যার মুখোমুখি হচ্ছি আমি আমার 2 পি পোস্ট করার ভেবেছিলাম ...
@ এলভিসের পরামর্শ অনুযায়ী চতুষ্কোণ প্রোগ্রামিং ব্যবহার করুন তবে প্র্যাকমা প্যাকেজ থেকে স্ক্লিংকন ব্যবহার করুন । আমি মনে করি সুবিধাটি হ'ল সীমাবদ্ধতাগুলি নির্দিষ্ট করার জন্য একটি সহজ ইউজার ইন্টারফেস। (আসলে, চারপাশে একটি মোড়ক )।quadrpog::solve.QP
lsqlincon
solve.QP
উদাহরণ:
library(pracma)
set.seed(1234)
# Test data
X <- matrix(runif(300), ncol=3)
Y <- X %*% c(0.2, 0.3, 0.5) + rnorm(100, sd=0.2)
# Equality constraint: We want the sum of the coefficients to be 1.
# I.e. Aeq x == beq
Aeq <- matrix(rep(1, ncol(X)), nrow= 1)
beq <- c(1)
# Lower and upper bounds of the parameters, i.e [0, 1]
lb <- rep(0, ncol(X))
ub <- rep(1, ncol(X))
# And solve:
lsqlincon(X, Y, Aeq= Aeq, beq= beq, lb= lb, ub= ub)
[1] 0.1583139 0.3304708 0.5112153
এলভিসের হিসাবে একই ফলাফল:
library(quadprog)
Rinv <- solve(chol(t(X) %*% X));
C <- cbind(rep(1,3), diag(3))
b <- c(1,rep(0,3))
d <- t(Y) %*% X
solve.QP(Dmat = Rinv, factorized = TRUE, dvec = d, Amat = C, bvec = b, meq = 1)$solution
সম্পাদনা সম্পাদনা এখানে গুং এর মন্তব্য লক্ষ্য করার চেষ্টা করার জন্য কিছু ব্যাখ্যা। স্ক্লিংকন ম্যাট্লাবের এলএসক্লিনকে এমুলেট করে যা একটি দুর্দান্ত সহায়তা পৃষ্ঠা রয়েছে। আমার কিছু (গৌণ) সম্পাদনাগুলির সাথে সম্পর্কিত বিটগুলি এখানে:
X
গুণক ম্যাট্রিক্স, ডাবলসের ম্যাট্রিক্স হিসাবে নির্দিষ্ট। সি দ্রষ্টব্য x এর x এর গুণককে প্রকাশ করে সি * x - ওয়াই সি, এম-বাই-এন, যেখানে এম সমীকরণের সংখ্যা, এবং এন হল x এর উপাদানগুলির সংখ্যা।
Y
কনস্ট্যান্ট ভেক্টর, ডাবলসের ভেক্টর হিসাবে নির্দিষ্ট। ওয়াই সি * x - এক্সপ্রেশনটিতে যোগমূলক ধ্রুবক পদকে প্রতিনিধিত্ব করে - ওয়াই ওয়াই এম-বাই -১, যেখানে এম সমীকরণের সংখ্যা।
Aeq
: লিনিয়ার সমতা সীমাবদ্ধ ম্যাট্রিক্স, ডাবলসের ম্যাট্রিক্স হিসাবে নির্দিষ্ট। Aeq Aeq * x = বেকের সীমাবদ্ধতায় রৈখিক সহগকে উপস্থাপন করে। এেকের আকার মেক-বাই-এন রয়েছে, যেখানে মেক সীমাবদ্ধতার সংখ্যা এবং এন হ'ল x এর উপাদানগুলির সংখ্যা
beq
লিনিয়ার সমতা সীমাবদ্ধ ভেক্টর, ডাবলসের ভেক্টর হিসাবে নির্দিষ্ট। বেক সীমাবদ্ধতাগুলিতে Aeq * x = বেকের স্থির ভেক্টরকে উপস্থাপন করে। বেকের দৈর্ঘ্য মেক থাকে, যেখানে আেক মেক-বাই-এন হয়।
lb
নিম্ন সীমা, ডাবলসের ভেক্টর হিসাবে নির্দিষ্ট। lb lb ≤ x ≤ ub তে মৌলিক দিকের নিম্ন সীমা প্রতিনিধিত্ব করে।
ub
উপরের সীমা, ডাবলসের ভেক্টর হিসাবে নির্দিষ্ট। ইউবি lb ≤ x ≤ ub এ এলিমেন্টওয়্যারের উপরের সীমানাকে উপস্থাপন করে।