0

y可以取的值,其是在限定的範圍內的變量:求解非線性優化方程大的誤差

3<y<5 

應該確定引入約束像

|x-y|=min 

X Y的值是應該掃描更大的範圍,如:

x:=-1000:1:1000 

如何找到確切的y值與給定的x?

,我認爲結果是這樣的:

x  y 
-1000 3 
.  3 
.  3 
2.9 3 
3  3 
3.1 3.1 
4  4 
5  5 
6  5 
7  5 
.  5 
.  5 
1000 5 

這意味着我要允許更大的「錯誤」,但3到5之間,應該有一個非常小的錯誤解決,這樣我可以解決這方面的儘可能好。

在Matlab中實現類似這樣的最佳方式是什麼?沒有「IF」條件,如果可能的話,象徵性的。但數字替代方案也很有趣。

+0

你的意思是:'| X-Y | <= min' x和y的每一個值?另外,不要在matlab中使用'min'作爲變量名,因爲你會重載相應的函數。此外,我沒有看到你的問題的任何部分,你試圖解決的問題。你能詳細說明一下嗎? –

+0

它不是一個變量,而是一個數學語法。它應該被最小化。這裏也沒有matlab代碼。我剛纔描述了我的問題。我想用給定的x找到(接近的)y值 – Caniko

回答

3

基於您的評論和例子,我認爲你只是在尋找這樣的:

x = -10:0.1:10 %Suppose this is your x 

y = max(min(x,5),3) %Force it between 3 and 5 by rounding up or down respectively 
+1

我看不出這與標題相匹配,但我希望它有幫助。 –

+0

謝謝。你是對的。你提供了一個確切的解決方案,即使我不是故意要限制我的問題。這是一個較大的和描述在這裏:http://stackoverflow.com/questions/18532932/solving-nonlinear-minimization-equations-symbolically-in-matlab – Caniko

+0

+1 - 很好地完成。 – duffymo