![]() |
[求助]关于非线性方程组的求解
高手请帮忙给解决一个问题
我知道如果把数据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) 谢谢啦!!!!清高手给点意见 |
我和同学整出来了,在迭代函数和主函数,子函数中定义全局变量,
|
所有时间均为北京时间。现在的时间是 09:48。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.