0

переменной у может иметь значение, которое в определенном диапазоне:Решение нелинейных уравнений оптимизации с большими ошибками

3<y<5 

Значение у должна быть определена введением ограничения, как

|x-y|=min 

х и должен сканировать больший диапазон, например:

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

ли вы имеете в виду: '| х-у | <= min' для каждого значения х и у? Кроме того, не используйте 'min' в качестве имени переменной в matlab, поскольку вы будете перегружать соответствующую функцию. Кроме того, я не вижу какой-либо части вашего вопроса, где вы пытаетесь что-то решить. Не могли бы вы уточнить? –

+0

Это не переменная, а математический синтаксис. Он должен быть сведен к минимуму. Здесь также нет кода matlab. Я только что описал свою проблему. Я хочу найти значение (приближенного) y с заданным x – 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