PDA

Просмотр полной версии : Сохранение математических формул


MaxD
24.01.2007, 19:06
Можно ли как-нибудь сохранять математические формулы в какой-нибудь объект или каким-нибудь другим образом?
К примеру задается (динамически) формула:
var formula = Math.sin(x) + Math.atan(x/2);
После этого к ней нужно добавить какой-нибудь Math.sqrt и протрейсить при разных х.

Жаль, что нельзя сохранить formula как String, потом заменить все иксы на нужное значение и распарсить...

etc
24.01.2007, 19:27
myFunction = function(x) {
return Math.sin(x)+Math.atan(x/2);
}
trace(Math.sqrt(myFunction(1)))

firelord
24.01.2007, 19:28
формула фиксированная? что значит "добавить какой-нибудь Math.sqrt"? куда добавить? ;)

var x=...
var formula=Math.sqrt(Math.sin(x) + Math.atan(x/2));

или просто функцию сделать:

function formula(x:Number):Number {
return Math.sqrt(Math.sin(x) + Math.atan(x/2));
}
var y=formula(1);
var y=formula(2);
...

firelord
24.01.2007, 19:28
опередили меня... :)

MaxD
24.01.2007, 19:53
Не фиксированная формула!
Нужно реализовать что-то вроде инженерного калькулятора. То есть при нажатии на кнопку "cos" в формулу добавляется косинус х, а после того, как формула сформирована, подставляем разные значения х.

expl
25.01.2007, 03:02
Существует еще генерация функций:
function mult(f1:Function, f2:Function):Function {
return function(x):Number {
return f1(x)*f2(x)
};
}
var mf:Function=mult(function(x){return 6;}, function(x){return x*x});
trace(mf(2));//(6 * x*x)(2)=24

Впринципе по нажатии определенной кнопки можно наращивать текющую функцию какими угодно действиями, можно даже функцию от функции брать - f1(f2(x))