24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1408  |  回复: 3

xuetb

铁虫 (初入文坛)

[求助] matlab最小二乘问题求助 怎么定义多变量

最小二乘问题:
非线性最小二乘问题:minf^2 其中, f=[x1+10*x2;sqrt(5)*(x3-x4);(x2-2*x3)^2;sqrt(10)*(x1-x4)^2];x0=[3,-1,0,1]
程序如下,可以求单变量,怎么定义x=[x1,x2,x3,x4],求解呢?  请高手指教                        
function fv = Funval( f,varec,varval )
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
tic;
var = findsym(f);
varc = findsym(varec);
s1=length(var);
s2=length(varc);
m=floor((s1-1)/3+1);
varv=zeros(1,m);
if s1~=s2
    for i=0(s1-1)/3)
        k=findstr(varc,var(3*i+1));
        index=(k-1)/3;
        varv(i+1)=varval(index+1);
    end
    fv=subs(f,var,varv);
else
    fv=subs(f,varec,varval);
end
end
x=[x1,x2,x3,x4];
function [x,minf]= minGN(f,x0,var,eps)%目标函数;f;初始点:x0,自变量向量;var,
  %精度:eps,目标函数最小值时的x以及目标函数最小值
  format long;
  if nargin==4
      eps=1.0e-5;
  end
  S=transpose(f)*f;
  k=length(f);
  n=length(x0);
  x0=transpose(x0);
  tol=1;
  A=jacobian(f,var);
  while tol>eps
      Fx=zeros(k,1);
      for i=1:k
          Fx(i,1)=Funval(f(i),var,x0);
      end
      Sx=Funval(S,var,x0);
      Ax=Funval(A,var,x0);
      gSx=transpose(Ax)*Fx;
      dx=-transpose(Ax)*Fx;
      x0=x0+dx;
      tol=norm(dx);
  end
  x=x0;
  minf=Funval(S,var,x);
  format short;
  toc;
  Iterations;
end
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xuetb

铁虫 (初入文坛)

补充:偶在matlab中输入: syms x=[x1 x2 x3 x4];f=[x1+10*x2;sqrt(5)*(x3-x4);(x2-2*x3)^2;sqrt(10)*(x1-x4)^2];x0=[3,-1,0,1];[x,minf]=minGN(f,x0,[x],1.0e-5),S,A,k
错误: Error using ==> syms at 61
Not a valid variable name.
2楼2011-12-05 15:54:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhfzh

木虫 (正式写手)

【答案】应助回帖


余泽成(金币+1): 谢谢参与应助!欢迎常来程序语言版! 2011-12-08 14:06:03
你可以用strcat、  eval函数通过循环来实现多个变量的定义
3楼2011-12-05 17:11:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xuetb

铁虫 (初入文坛)

引用回帖:
3楼: Originally posted by zhfzh at 2011-12-05 17:11:33:
你可以用strcat、  eval函数通过循环来实现多个变量的定义

能帮助编写下么? 如何实现?谢谢啦
4楼2011-12-06 00:54:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xuetb 的主题更新
信息提示
请填处理意见