fslove Equation with variable coefficients
2 次查看(过去 30 天)
显示 更早的评论
Using fsolve, I want to solve a non linear set of equations such as
k*exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2)=0
x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5=0
Whereas k is a set of varying coefficients. I want to solve the set of equations using fsolve for each value of k. I used a normal loop with k(i) inside the function and received an error message. Is there a way to perform this with fsolve?
1 个评论
Torsten
2017-2-9
Please include your code and the exact error message you receive.
Best wishes
Torsten.
采纳的回答
John D'Errico
2017-2-9
编辑:John D'Errico
2017-2-9
Of course you got an error. Solve one problem at a time. Put the loop outside of the call to fsolve.
n = numel(k);
X = zeros(n,2);
x0 = ???
for i = 1:n
fun = @(x) [k(i)*exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2); ...
x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5];
X(i,:) = fsolve(fun,x0);
end
At some point, you might decide to learn how to specify a sparse block diagonal jacobian, in which case you could try to solve multiple problems at a time in one call to fsolve. Walk before you run.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Systems of Nonlinear Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!