2013-11-25 4 views
1

Мне нужно решить нелинейное уравнение с одной переменной в переменной.
, например. f(x)=x^1.9+(1-x)*(1-2*x)-1.2545=0Решить нелинейное уравнение при различном значении параметра

Однако есть небольшое осложнение. Уравнение также включает один параметр: t, и мне нужно решить уравнение для различных значений t, которые я определил в векторе.

t=0.1:0.1:5.0; 
f(x)=t*x^1.9+...+52.25*t=0 
solution=[solutions for each value of t] 

Как это сделать? Я подумал о том, чтобы учесть строку, а затем построить встроенную функцию, а затем использовать fsolve. Но я думаю, что это не лучший способ.

ответ

1

Вы можете передавать параметры в целевую функцию, используя анонимные функции.
Сначала определим целевую функцию, которая принимает два аргументы xиt

myFun = @(x, t) t.*x.^1.9 + (1 - x).*(1 - 2 * x) + 52.25*t; 

Теперь вы можете изменить t каждый раз:

ts = 0.1:0.1:5; 
for ti = 1:numel(ts) 
    t = ts(ti); % current value for t 
    solution(ti) = fsolve(@(x) myFun(x, t), x0); 
end 
+0

Спасибо .... Я думаю, что это будет Работа. Я скоро проверю это. – tumchaaditya

+0

Это сработало ... еще раз спасибо – tumchaaditya

Смежные вопросы