2011-12-14 7 views

ответ

3

Я не совсем уверен, что вы имеете в виду, но я думаю, что вы хотите получить уравнение, которое пользователь вводит в текстовое поле, и включить его в функцию?

Почему ваш F изменяется от 3 до 4? то есть F(x,y,y') --> F(1,0,5,-1) в следующей строке? (Примеры F, которые вы дали, похоже, не совпадают с вашим уравнением.)

В любом случае, проверьте eval(), возможно, это то, что вы хотите. Он принимает команду matlab как строку, например. 2 + 3, и вычисляет его.

Так

eval('2+3') % gives 5 
eval('[email protected](x,y,ydash) y*sqrt(1+ydash^2)') % gives a function f 
f(1,5,-2) % gives 11.1803 

Но в любом случае, как вы ожидаете пользователю ввести в корень квадратный символ и квадратом символа? Подход eval() основывается на том, что они набирают синтаксис, который будет понимать Matlab.

Если вы уточните свой вопрос немного больше, это будет проще.

+0

извините, F (1,0,5, -1) означает, что это F (1,0,5, -1) – flatronka

+0

y '(ydash) означает y производная – flatronka

+1

Да, я знаю, что такое производная. Если это было 'F (x, y, y ') = F (1,0,5, -1)' - как на самом деле выполняется 'y * sqrt (1+ (y')^2) == (0.5) * sqrt (1 + (- 1)^2) = 7' ?! –