登录论坛

查看完整版本 : [求助]高手请帮忙给解决一个问题


jackie
2008-03-16, 12:33
高手请帮忙给解决一个问题

我知道如果把数据miu1 miu2 miu3 A Vm Vmmiu1 Vmmiu2 Vmmiu3 Vd0换成具体的数值直接输入方程就能做出来,但这些是在上面求的的,不能求出来再编写求解程序

运用迭代法求解此方程组
mium1=miu1+td*Vm*Vmmiu(1);
mium2=miu2+td*Vm*Vmmiu(2);
mium3=miu3+td*Vm*Vmmiu(3);
td=A*(exp(R/A)-1)/Vd0;
R=sqrt(mium1^2+mium2^2+mium3^2);

%%%%%%%%%迭代函数
function [p0,k,err,p]=fixpt(g,p0,tol,max1)
%g是给定的迭代函数
%p0是给定的初始值
%max1是所允许的最大迭代次数
%k是所进行的迭代次数加1
%p是不动点的近似值
%err是误差
%p(p1,p2,...pn)
P(1)=p0;
for k=2:max1
P(k)=feval('g',P(k-1));
k;
err=abs(P(k)-P(k-1));
p=P(k);
if(err<tol)
break;
end
if k==max1
disp('maximum number of iteration exceeded');
end
end


%%%%%%%%%%%%%
function x=g(R,miu1,miu2,miu3,A,Vd0,Vm,Vmmiu)
x=sqrt((miu1+A*(exp(R/A)-1)/Vd0*Vm*Vmu1)^2+(miu2+A*(exp(R/A)-1)/Vd0*Vm*Vmu1)^2+(miu3+A*(exp(R/A)-1)/Vd0*Vm*Vmu1)^2);

运行此命令[p0,k,err,p]=fixpt('g',0,10^(-5),20)


显示错误为
??? Input argument "miu1" is undefined.

Error in ==> g at 3
x=sqrt((miu1+A*(exp(R/A)-1)/Vd0*Vm*Vmu1)^2+(miu2+A*(exp(R/A)-1)/Vd0*Vm*Vmu1)^2+(miu3+A*(exp(R/A)-1)/Vd0*Vm*Vmu1)^2);

Error in ==> fixpt at 12
P(k)=feval('g',P(k-1));

Error in ==> jinzhahuijian at 137
[p0,k,err,p]=fixpt('g',0,10^(-5),20)

谢谢啦!!!!清高手给点意见