找回密码
 注册
Simdroid-非首页
查看: 178|回复: 5

牛顿迭代解非线性方程组问题

[复制链接]
发表于 2010-4-23 10:13:20 | 显示全部楼层 |阅读模式 来自 山东青岛
我的思路是这样的:输入样本D为一个n乘3的矩阵,其中第一二三列分别表示q、r、v,然后代入方程组;  f1=sum((v(i)-k*q(i)^a*r(i)^b)*q(i)^a*r(i)^b); f2=sum((v(i)-k*q(i)^a*r(i)^b)*q(i)^a*r(i)^b*log(q(i)));f3=sum((v(i)-k*q(i)^a*r(i)^b)*q(i)^a*r(i)^b*log(r(i)));中求解k、a、b并且使(x-x0)/x0误差最小。

下面是编写的程序,请帮忙改正一下吧,谢了。

clear clc
global x v k q a b r w e1 e N;
D=[5.6,15.62,1.431;5.6,22.36,1.067;5.6,29.73,0.582;5.6,36.4,0.516;5.6,43.17,0.348;9.4,20.59,1.433;9.4,27.86,0.964;12.8,27.31,1.204];%数据样本

q=D(:,1)';
r=D(:,2)';
v=D(:,3)';

%计算输入样本的组数
n=length(q);

x0=[100,0.5,-0.5];%初始值

%编写循环程序
for i=1:n
      if abs(e1)>1e-4&(w<=500)
      f1=sum((v(i)-k(w)*q(i)^a(w)*r(i)^b(w))*q(i)^a(w)*r(i)^b(w));
      f2=sum((v(i)-k(w)*q(i)^a(w)*r(i)^b(w))*q(i)^a(w)*r(i)^b(w)*log(q(i)));
      f3=sum((v(i)-k(w)*q(i)^a(w)*r(i)^b(w))*q(i)^a(w)*r(i)^b(w)*log(r(i)));
     
      f=[f1;f2;f3];x=[k,a,b];
      df=jacobian(f,x);%利用jacobian函数求微分
      x=newton(f,df,x0,e,N);
      x=x0-feval(f,x0)/feval(df,x0);
     
%利用norm函数求精度
      e1=norm((x-x0)./x,inf);%取dx的无穷范数
      
   
      w=w+1;
        x0=x;
        disp(x);
    else if w>N
    warning('已达迭代次数上限');
    end
   i=i+1;
      end
end
disp(x)
发表于 2010-4-25 20:28:57 | 显示全部楼层 来自 上海杨浦区
Simdroid开发平台
不是很好吗?
回复 不支持

使用道具 举报

 楼主| 发表于 2010-4-26 10:38:49 | 显示全部楼层 来自 山东青岛
这个程序运行起来有很多错误,请帮忙改正一下吧。谢谢了。 2# refeihc
回复 不支持

使用道具 举报

发表于 2010-4-27 21:12:35 | 显示全部楼层 来自 上海杨浦区
看了一点,赋初值有问题吧?w的初值没赋,k、a和b的初值也没给。下面的代码会出问题的:

for i=1:n
      if abs(e1)>1e-4&(w<=500)
      f1=sum((v(i)-k(w)*q(i)^a(w)*r(i)^b(w))*q(i)^a(w)*r(i)^b(w));
      f2=sum((v(i)-k(w)*q(i)^a(w)*r(i)^b(w))*q(i)^a(w)*r(i)^b(w)*log(q(i)));
      f3=sum((v(i)-k(w)*q(i)^a(w)*r(i)^b(w))*q(i)^a(w)*r(i)^b(w)*log(r(i)));

............

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-4-27 21:14:34 | 显示全部楼层 来自 上海杨浦区
最后改正还是靠自己吧,别人顶多助点力,这么小一个程序不拿下来,说不过去。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-4-27 21:41:39 | 显示全部楼层 来自 山东青岛
言之有理,谢谢了。
5# refeihc
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-20 06:22 , Processed in 0.040926 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表