how do i solve this non linear system?

1 次查看(过去 30 天)
Hello, i must say that im not really good programing with matlab, i have this problem (i´ll explain it very fast):
1º I made a function that give me a vector made of real numbers i(1,6). 2º With that vector i, i would like to build and solve the next system:
f(1)= x(1)*x(2)*x(3)-i(1);
f(2)= x(1)*x(6)*x(3)-i(2);
f(3)= x(5)*x(2)*x(3)-i(3);
f(4)= x(5)*x(6)*x(3)-i(4);
f(5)= x(4)*x(2)*x(3)-i(5);
f(6)= x(4)*x(6)*x(3)-i(6);
For doing it, i tried the suggestion in this video:
And if i do it, giving constant values to i (instead of using the vector i), i can solve the system, but when i introduce i, matlab says: undefined variable i... and several more errors.
I hope that everybody can understand what i mean, and i would be really gratefull if you can help me with it. Thanks you very much!
  2 个评论
Jaime
Jaime 2013-3-4
I want to do exactly the same as in example 1(scroll down after opening), but my problem is that myfun.m file looks like this:
function [f]=ecuaciones(x,i)
f(1)= x(1)*x(2)*x(3)-i(1)
f(2)= x(1)*x(6)*x(3)-i(2)
f(3)= x(5)*x(2)*x(3)-i(3)
f(4)= x(5)*x(6)*x(3)-i(4)
f(5)= x(4)*x(2)*x(3)-i(5)
f(6)= x(4)*x(6)*x(3)-i(6)
as you see, for building my system i also need i, not only x. So when i call it with fsolve it doesn´t work.

请先登录,再进行评论。

采纳的回答

Brian B
Brian B 2013-3-4
编辑:Brian B 2013-3-4
fsolve will only pass in a single argument, so i will be undefined. Assuming you want to solve this equation for fixed values of i (say i = ibar) you can use an anonymous function like this:
ibar = (1:6);
ecuaciones_con_i = @(x) ecuaciones(x, ibar);
Then pass ecuaciones_con_i to fsolve (without a @, since it is already a function handle):
xbar = fsolve(ecuaciones_con_i, x0);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Stability Analysis 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by