Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-03-16, 12:35   #1
jackie
初级会员
 
注册日期: 2007-12-22
帖子: 6
声望力: 0
jackie 正向着好的方向发展
默认 [求助]关于非线性方程组的求解

高手请帮忙给解决一个问题

我知道如果把数据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)

谢谢啦!!!!清高手给点意见
jackie 当前离线   回复时引用此帖
旧 2008-03-18, 21:46   #2
未注册
游客
 
帖子: n/a
默认

我和同学整出来了,在迭代函数和主函数,子函数中定义全局变量,
  回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
【求助】利用SIMULINK设计一个单极性SPWM控制的单相逆变电路 随非而飞 MATLAB论坛 1 2010-10-26 15:17
[资料]周期信号的傅里叶级数实验代码!!! zdJack0305 MATLAB论坛 2 2008-08-05 10:53
[求助]dct变换后 huffman dc ac编码 疑问? strongbox MATLAB论坛 0 2008-05-08 22:45
[求助]如何批处理文件名为自然数的文件 cliveshao MATLAB论坛 1 2008-04-05 00:25
今日大券商深研精选高增长潜力股一览(11.5) labfans MATLAB新闻聚合 0 2007-11-20 15:15


所有时间均为北京时间。现在的时间是 07:59


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.