Angularjs имеет большую поддержку для интернационализации и локализации. Применение интернационализации и локализации зависит от объема вашей заявки. Например, если ваше приложение поддерживает только евро, вам нужна только локализация для евро и не требуется вся валюта и ее форматирование.
В такой ситуации (если ваша ситуация аналогична приведенной выше), вы можете создать конфигурации приложения и установить локаль как локализацию, необходимую вам с помощью некоторых декораторов. Функция декоратора перехватывает создание службы, позволяя ей переопределять или изменять поведение службы.
angular
.module('app', [])
.config(['$provide', function($provide) {
$provide.decorator('$locale', ['$delegate', function($delegate) {
$delegate.NUMBER_FORMATS = {
DECIMAL_SEP: '.',
GROUP_SEP: ',',
PATTERNS: [{ // Decimal Pattern
minInt: 1,
minFrac: 0,
maxFrac: 3,
posPre: '',
posSuf: '',
negPre: '-',
negSuf: '',
gSize: 3,
lgSize: 3
}, { //Currency Pattern
minInt: 1,
minFrac: 0,
maxFrac: 1,
posPre: '\u00A4',
posSuf: '',
negPre: '(\u00A4',
negSuf: ')',
gSize: 3,
lgSize: 3
}],
CURRENCY_SYM: '€'
}
return $delegate;
}]);
}])
.controller('appController', ['$scope', function($scope) {
$scope.price = 20.55;
}])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="appController">
Price : {{price | currency}}
</div>
</div>
над конфигурацией отображаются все возможные значения для десятичных и валютных настроек. Вы можете изменить в соответствии с вашими требованиями на уровне приложения.
Если вы не хотите, чтобы эффект был во всем приложении лучше, нужно перейти к директиве
В случае, если это полезно, вот шаблон Numpy/Scipy (Python), чтобы сделать то, что Вы хотите:
from numpy import array
from scipy.optimize import leastsq
def __residual(params, y, a, b, c):
p0, e0, p1, e1, p2, e2 = params
return p0 * a ** e0 + p1 * b ** e1 + p2 * c ** e2 - y
# load a, b, c
# guess initial values for p0, e0, p1, e1, p2, e2
p_opt = leastsq(__residual, array([p0, e0, p1, e1, p2, e2]), args=(y, a, b, c))
print 'y = %f a^%f + %f b^%f %f c^%f' % map(float, p_opt)
, Если Вы действительно хотите понять то, что продолжается, тем не менее, Вы оказываетесь перед необходимостью инвестировать время для масштабирования кривой обучения для некоторого инструмента или среды программирования - я действительно не думаю, что существует любой путь вокруг этого. Люди обычно не пишут специализированные инструменты для того, чтобы сделать вещи как регрессии питания с 3 терминами исключительно.
Существует инструмент для установки 1D и 2D кривые в zunzun.com , но я не думаю, что это идет вне двух переменных. Аналогично, Matlab не поддерживает больше чем две установки размеров (насколько я знаю), и это, конечно, не свободно.
Иначе, Вы смогли находить часть своего решения в Числовые Рецепты .
, Но как другие обозначенные плакаты, Вам, вероятно, будет нужна, по крайней мере, основная идея о Вашей модели функции (который, надо надеяться, линеен или может линеаризоваться, в этом случае у Вас будет намного больший массив решений в Вашем распоряжении)
Основы установки данных включают принятие общей формы решения, предположение некоторых начальных значений для констант и затем итерации для уменьшения ошибки предполагаемого решения найти определенное решение, обычно в смысле наименьших квадратов.
Изучают R или Октава для инструментов с открытым исходным кодом. Они оба способны к анализу наименьших квадратов с несколькими учебными руководствами просто поиск Google далеко.
Редактирование: код Октавы для оценки коэффициентов для 2-го многочлена порядка
x = 0:0.1:10;
y = 5.*x.^2 + 4.*x + 3;
% Add noise to y data
y = y + randn(size(y))*0.1;
% Estimate coefficients of polynomial
p = polyfit(x,y,2)
На моей машине, я добираюсь:
ans =
5.0886 3.9050 2.9577
Вы знаете, каким питанием Вы хотите ограничить свой многочлен?
, Если нет никакого предела, то можно всегда получать точное совпадение для точек N путем соответствия ему к многочлену, который имеет коэффициенты N. Чтобы сделать это, Вы включаете различные точки N в свое уравнение, приводя N к уравнениям и неизвестным N (коэффициенты), который можно затем использовать или простую алгебру средней школы или матрицу для решения для неизвестных.
Если у Вас есть предположение в форме f, [*] Вам нужен минимизатор для нахождения оптимальных параметров. инструменты Scottie T предлагают , работал бы, как будет КОРЕНЬ , и многие другие.
, Если у Вас нет подсказки, какая форма f могла бы принять Вас, находятся в глубокой проблеме действительно.
<час>[*] таким образом, Вы знаете что
f = f (x, y, z, w...; p1, p2, p3...)
, где p
с являются параметрами и координатами, x
, y
...
Короткий Ответ: это не настолько просто. Рассмотрите непараметрический подход к подмножествам данных.
существует 2 основных вопроса, необходимо ли решить приблизительно (1), Вы на самом деле заботитесь о параметрах функции, т.е. Вашем P1, E1..., или Вы были бы хорошо только с оценкой средней функции (2), необходимо ли действительно оценить функцию на всех данных?
первая вещь, которую я упомяну, состоит в том, что Ваша указанная функция нелинейна (в параметрах, которые будут оценены), таким образом, обычные наименьшие квадраты не будут работать. Давайте притворимся определение линейной функции. У Вас все еще была бы проблема с 10M значения. Линейная регрессия может быть выполнена в эффективном способе использовать QR-факторизацию, но Вас все еще оставляют с O (p * n^2) алгоритм, где p является количеством параметров, Вы пытаетесь оценить. Если Вы хотите оценить нелинейную среднюю функцию, это становится намного хуже.
единственный способ, которым Вы собираетесь быть способными оценить что-либо в таком большом наборе данных, при помощи подмножества для выполнения оценки. В основном Вы случайным образом выбираете подмножество и использование что оценить функцию.
, Если Вы не заботитесь о своих значениях параметров и просто хотите оценить среднюю функцию, Вы, вероятно, будете более обеспеченным использованием непараметрического метода оценки.
, Надо надеяться, это помогает.
leif