Доброе утро, я пытаюсь решить 8 уравнений с 8 неизвестными с помощью fsolve и хочу посмотреть, как меняются результаты с одним параметром (Vn1). При использовании работает некорректно - перезаписывает счет и в конце остается только результат с последним значением Vn1. Вы можете помочь мне?
Вот мой код:
clear
clc
Vn=100;
Vn1=[10;11;12;13];
Vn3=20;
wn=1;
lambda1=0.1;
lambda3=0.2;
R1=0.99;
R3=0.98;
fun1 = @(x) [(Vn-Vn1+x(1)-x(2));
x(2)-Vn3+x(3)-x(4);
x(5)-wn.*(1+lambda1.*R1./(1-lambda1));
x(6)-x(7).*(1+lambda3.*R3./(1-lambda3));
x(7).*x(2)-wn.*(Vn-Vn1)-x(5.)*x(1);
x(8).*x(4)-x(7).*(x(2)-Vn3)-x(6).*x(3);
x(1)-Vn1+lambda1.*Vn1;
x(3)-Vn3+lambda3.*Vn3];
x0(8,4)=0;
x = fsolve(fun1,x0);
plot(Vn1,x(8))
Заранее спасибо!
x0
правильно представляет собой матрицу8x4
, ноfun1
также должна быть матрицей8x4
.Vn1
, вероятно, должен быть вектором-строкой (1x4
), и вы должны использоватьx(i, :)
вместо линейной индексацииx(i)
. - person m7913d   schedule 09.05.2017