登录论坛

查看完整版本 : 跪求牛人指点一个关于矩阵的问题


berrylolo
2008-05-27, 20:58
程序如下,我要用新计算出的矩阵Un里面的一个元素Un(1)来列方程,但是。。。痛苦啊,毕设要来不及了,这是我的第一个程序,研究5天了,还没结果,求高手指点一下,万分感谢啊!!!
function nonlinearcircuits1
global R1 R2 R3 R4 Us R5 v i
R1=1; R2=0.5; R3=0.5; R4=1;Us=1;%电路中元器件的参数数值
R5=input('R5'); %输入R5的初始试探指
disp('The initial guess R5 is');
j=0;
while(j<100) %开始循环,用节点电压矩阵计算在R5的某一试探电阻下个节点电压和电流
Un=jdjz(R5); %执行子程序节点电压矩阵的计算
v=Us-Un(1); %此时非线性电阻两端电压v
i=3Un(1)-Un(2)-2Un(3); %此时非线性电阻两端电流i
f=i^3*R5^3-i; %非线性电阻的特性函数
if(f<1e-4) %执行条件语句,
disp('The final R5 is','R5'); %当修正电阻R5满足要求:输出R5
break;
else %否则继续用牛拉法修正R5
R50=R5;
f1=i^3*R50^3-i;
f2=3i^3*R50^2;
R5=R50-f1/f2;
j=j+1;
end;
end;


function Un=jdjz(R5) %子程序节点电压矩阵 Yn*Un=In
y11=1/R1+1/R2+1/R5; y12=-1/R1; y13=-1/R2;
y21=-1/R1; y22=1/R1+1/R3; y23=0;
y31=-1/R2; y32=0; y33=1/R2+1/R4;%以上设置导纳矩阵Yn的元素
Yn=[y11,y12,y13;y21,y22,y23;y31,y32,y33];
In=[1/R5*Us;-1;1];
Un=Yn\In;

berrylolo
2008-05-27, 21:01
补充一下,是加大部分的Un(1)划红线:ft: