声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1488|回复: 6

[编程技巧] 谁能在2小时内解出这个方程组吗?

[复制链接]
发表于 2008-6-24 17:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
local]1[/local]我这个方程组的规模相对来说比较大,不知这里的高手是否可以指点指点?我将所有的方程转化为了最优化模型,求最小值。当最小值为0时所对应的X就是所方程组的解。可是我能想到的办法都试了,没有一个可以找到真解。请大家帮帮忙吧!
方程见附件中

方程.txt

7.14 KB, 下载次数: 25

回复
分享到:

使用道具 举报

发表于 2008-6-24 17:50 | 显示全部楼层
看了下,有47个未知数,期待ing。
发表于 2008-6-24 18:05 | 显示全部楼层
in 2 hours?
Good Question! Good luck~
发表于 2008-6-24 22:09 | 显示全部楼层
发表于 2008-6-24 22:19 | 显示全部楼层

回复 楼主 的帖子

请lz不要重复发贴
也希望有人来用matlab解决下
发表于 2008-6-29 12:15 | 显示全部楼层
其实解非线性方程组的算法很多的,随便搜索一偏这样的文章将里面的算法实现一下应该就可以解决LZ的问题的。下面我将我自己写的一篇文章中的算法贴出来共享下。
%以下是一个用迭代法解非线性方程组的算法。
%x0:初始迭代点。n:方程组个数。
%step:迭代次数。sig,gama,rou:算法中的相应参数,具体含义请参看算法。
%delta:误差。(这里指反问题,一般方程组可设为0)
%ydelta:含噪声的右端项。(这里指反问题,一般方程组可直接用精确右端项)
%x:最后迭代点。
function [x f k]=equsolve(n,x0,delta,ydelta,step,sig,gama,rou)
if nargin<5
    step=300;
end;
if nargin<6
    sig=0.5;
end;
if nargin<7
    gama=0.5;
end;
if nargin<8
    rou=0.2;
end;
f=nonlinfun(n,x0);
bmat=eye(n);
x=x0;
k=1;
lama=1.0;
normf=norm(f,2);
count=0;
while (normf>delta && k<=step)
    epsilon=0.5/k^2;
    p=bmat\(ydelta-f)';
    s=lama*p';
    xt=x+s;
    ft=nonlinfun(n,xt);
    normft=norm(ft,2);
    if ((normft-normf)<(-sig*tmp+epsilon))
        y=f;
        x=xt;
        f=ft;
    else  
        lama=rou*lama;
        count=count+1;
        continue;
    end;   
    theta=1.0;   
    bmat=bmat+((ft-y)'-bmat*s')*s/norm(s,2);
    if  (abs(det(bmat))<1.0e-3)
        bmat=bmat+0.5*((ft-y)'-bmat*s')*s/norm(s,2);
    end;
    k=k+1;
    normf=normft;                     
    lama=1.0;
end;
err=normf;
disp('用了')
k
disp('步,精度为')
err
%nonlinfun就是要求解的非线性方程组。

评分

1

查看全部评分

 楼主| 发表于 2008-6-29 20:11 | 显示全部楼层

回复 6楼 的帖子

谢谢您能关注我的问题,不过不知道可行否,我回去试试就知道,不是每个算法都能适合这个方程组的,我那些常用的都用C试过了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-28 08:00 , Processed in 0.077803 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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