| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖
标题:利用matlab编写迭代算法进行线性模拟过程出现的问题,希望有高手指点一下
只看楼主 加入收藏
悉心
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-7-31
结帖率:100%
收藏
 问题点数:0 回复次数:1 
利用matlab编写迭代算法进行线性模拟过程出现的问题,希望有高手指点一下
这是我最近在做的一个课题,函数模型是y=ax+b,我利用了最小二乘方法求出了参数a,b的值,但是我还需要利用这个最小二乘求出来的值利用我已有的公式进行迭代求出更精确的a,b的值,我的部分程序是这样的
syms x
N=A'*A;
c=A'*L;
x0=inv(N)*c;
v=(L-A*x)'*(L-A*x)/(1+x'*x);
f=inv(N)*(c+x*v);
eps=1e-6;
maxcnt=1000;
x1=x0;
cnt=1;
while cnt<=maxcnt
    x2=sub(f,x,x1);
    if abs(x1-x2)<eps
    break;
    end
    [cnt,x1,x2]
    cnt=cnt+1;
    end
其中的矩阵A,L我都有真值代入的,但是,每次运行都会出现问题
第一个问题时:??? Error using ==> sym.minus
Array dimensions must agree.

Error in ==> zongti at 8
f=inv(N)*(c+x*(L-A*x)'*(L-A*x)/(1+x'*x));
第二个问题是:?? Error using ==> reshape
To RESHAPE the number of elements must not change.

Error in ==> sym.double at 45
D = reshape(eval(X),siz);

Error in ==> sym.subs at 165
            NEWf = double(sym(maple('map','F',char(sym([NEWexpr{:}])))));

Error in ==> zongti at 14
    x2=subs(f,x,x1);
请问谁能指点一下我,我编的程序逻辑上我都看了一下,没什么问题,但是运行的时候就有问题了,还有就是在这部中if abs(x1-x2)<eps,x1和x2都是一个二行一列的矩阵,这两个矩阵怎么有效的进行比较
搜索更多相关主题的帖子: matlab 
2013-01-13 23:25
anbcjys
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:110
专家分:861
注 册:2007-6-8
收藏
得分:0 
第一个问题 是因为矩阵向量乘法时候 维数不对应 第二个问题是reshape的用法不对 help下就知道了

qq604443022
2013-04-02 08:46
快速回复:利用matlab编写迭代算法进行线性模拟过程出现的问题,希望有高手指点一 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016687 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved