curve fitting - Find values of constants in equation using MATLAB -


मेरे पास समीकरण F (f) = a * f ^ 3 + b * f + c । मुझे डेटा के वैक्टर, पी , स्वतंत्र चर, 'एफ' पता है मुझे a , b , c के मूल्यों को खोजने की आवश्यकता है I क्या मैंने कोशिश की:

  function [val] = myfunc (par_fit, f, p)% यह मुझे a, b, c% p = af ^ 3 + bf + c val = norm देता है पी - (पैरा_टेट (1) * (एफ। 3)) + (पैरा_टिफट (2) * एफ) + (पर्स_टिफेट (3))); अंत my_par = fminsearch (@ (par_fit) myfunc (par_fit, f, p), रैंड (1,3));  

यह मुझे my_par = [1.9808 -2.2170 -24.8039] देता है, या a = 1.9808 , b = -2.2170 , और सी = -24.8039 , लेकिन मुझे लगता है कि b 5 से बड़ा होना चाहिए, और c शून्य से बड़ा होना चाहिए ।

मुझे लगता है कि आपकी समस्या हो सकती है क्योंकि आपका उद्देश्य कार्य गलत है:

  val = norm (p - (par_fit (1) * (f। ^ 3)) + (पैरा_टिफट (2) * f) + (पैरा_टिफ (3)));  

शायद होना चाहिए:

  val = norm (p- (par_fit (1) * f। ^ 3 + par_fit (2) * f + par_fit (3)));  

लेकिन जब आप fminsearch के बजाय fmincon का उपयोग कर कम से कम करते हैं, तो आप चर के मूल्यों को सीमित कर सकते हैं। lb इनपुट को [- inf -inf 0] सेट करके, पहले दो गुणांक किसी भी वास्तविक संख्या की अनुमति है, लेकिन तीसरे गुणांक से अधिक या बराबर होना चाहिए शून्य करने के लिए उदाहरण के लिए: (मैंने यह भी दिखाया है कि मैट्रिक्स पद्धति का उपयोग करते हुए समस्या (गैर-नकारात्मकता बाधा के बिना) को हल करने के लिए)

 % नमूना डेटा f = (0: .1: 1) । '; P = 2 * f। ^ 3 + 3 * f + 1 + randn (आकार (च))% वान डेर मोंडे मैट्रिक्स एम = [एफ। 3 एफ एफ ^ 0]; सी = एम \ p; % आकार (एफ) & gt; आकार (एफ) my_par = fmincon (@ (c) आदर्श (पी- (सी (1) * एफ। ^ 3 + सी (2) * एफ अगर कम से कम वर्गों में मैट्रिक्स समस्या का समाधान करना + सी (3))), रैंड (1,3), [], [], [], [], [- इन्फ 5 0], []) सी। प्लॉट (एफ, पी, 'ओ', एफ, एम * सी, एफ, माइपर (1) * एफ। 3 + माइपर (2) * एफ + माइपर (3))  

Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -