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)
谢谢啦!!!!清高手给点意见
我知道如果把数据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)
谢谢啦!!!!清高手给点意见