FDaniil 0 5 декабря, 2016 Опубликовано 5 декабря, 2016 · Жалоба Здравствуйте. Пытаюсь наладить отношения с octave, а то время решение задач в mathcad увеличивается с неимоверной скоростью и стабильность маткада с ростом сложности задачи уменьшается. Пытаюсь найти корни функции с несколькими аргументами при изменении других параметров функции. Есть функция: %сохранена в каталоге под именем "lin.m" function y = lin(x,a,b) y=a.*x+b; endfunction Есть функция fsolve (или fzero), одним из аргументов которой является указатель на функцию или инлайн функция или просто как строка. Документация: [X, FVAL, INFO, OUTPUT] = fzero (FUN, X0, OPTIONS) FUN is a function handle, inline function, or string containing the name of the function to evaluate. Для вариантов указателя и "просто строка", как я понял, используют символ "@" или "одинарные кавычки", но в таком случае не могу понять где указываются значения аргументов a и b Для варианта с inline проще - можно было бы объявить заранее переменные "a" и "b" и записывать в inline, но получается беда: >> a=1; >> b=0; >> f=inline('num2str(a)*x+num2str(b)','x') f = f(x) = num2str(a)*x+num2str(b) >> f(2) ans = 146 Я ожидал, что заранее объявленные переменные подставятся в нужные места, но всё равно в таком случае появляется необходимость в хранении формулы в виде строки и при изменении какого-либо параметра исправлять функцию. Есть непроверенная идея - в цикле сохранять текущие значения параметров "a" и "b", а при вызове функции ввести блок их чтения, но, думаю, на скорость это повлияет плохо. Куда же копать, есть же более простое решение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FDaniil 0 6 декабря, 2016 Опубликовано 6 декабря, 2016 · Жалоба Прошу прощения, долго искал ответ, но после того как написал сюда всё нашлось dkhramov.dp.ua/Sci/MatlabHowtoPassAdditionalParams Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться