Здравствуйте.
Пытаюсь наладить отношения с octave, а то время решение задач в mathcad увеличивается с неимоверной скоростью и стабильность маткада с ростом сложности задачи уменьшается.
Пытаюсь найти корни функции с несколькими аргументами при изменении других параметров функции.
Есть функция:
%сохранена в каталоге под именем "lin.m"
function y = lin(x,a,b)
y=a.*x+b;
endfunction
Есть функция fsolve (или fzero), одним из аргументов которой является указатель на функцию или инлайн функция или просто как строка.
Документация:
Для вариантов указателя и "просто строка", как я понял, используют символ "@" или "одинарные кавычки", но в таком случае не могу понять где указываются значения аргументов 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", а при вызове функции ввести блок их чтения, но, думаю, на скорость это повлияет плохо.
Куда же копать, есть же более простое решение?