Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: fsolve Octave
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
FDaniil
Здравствуйте.
Пытаюсь наладить отношения с 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
Прошу прощения, долго искал ответ, но после того как написал сюда всё нашлось
dkhramov.dp.ua/Sci/MatlabHowtoPassAdditionalParams
Спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.