24小时热门版块排行榜    

查看: 1248  |  回复: 14
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

飞扬2282

荣誉版主 (著名写手)

[交流] 【求助】Matlab最小二乘法简单编程代码?



求Matlab7编写程序代码,实现如下简单计算!

(uj-ui)v-(vj-vi)u=vi*uj-vj*ui     ( i=1,2,....N/2;  j=i+N/2 )

其中: ui,uj,vi,vj,N均为已知数值,求u,v?


[ Last edited by 飞扬2282 on 2009-4-8 at 15:43 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★ ★ ★
sunxiao(金币+4,VIP+0):谢谢参与,欢迎常来仿真编程版 4-9 23:13
我老是出点错,麻烦版主退10个金币给楼主吧,前面几个人也费了不少劲,呵呵
我把程序改了一下
function y=solveuv(u,v,N)
%Av-Bu=C
ind=floor(N/2);
A=u(ind+1:ind*2)-u(1:ind);
B=v(ind+1:ind*2)-v(1:ind);
C=v(1:ind).*u(ind+1:ind*2)-v(ind+1:ind*2).*u(1:ind);
%[A -B]*[v u]'=C
y=([A -B])\C;
% y(1)=u
% y(2)=v
y=[y(2) y(1)]';

>>  N=6;
u=[1 3 3 4 5 6]';
v=[1.5 2.5 3.5 4.5 5.5 6.5]';
y=solveuv(u,v,N)

y =

    5.0000
    5.5000
输出第一个值是u,第二个值是v,我只是根据你的式子来看的,没有考虑实际意思,感觉应该符合你的方程了。

第1个问题:
ind+1:ind不就是ind+1:ind+ind,也就是ind+1:ind*2吗,一样的。

第2个问题:
*是矩阵运算,.*是数组运算

比如:
>> a=[1 2 ;3 4]

a =

     1     2
     3     4

>> a.*a

ans =

     1     4
     9    16

>> a*a

ans =

     7    10
    15    22

随便找本MATLAB入门级的书先讲的都是这个
11楼2009-04-09 18:28:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

fspdlh

金虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
sunxiao(金币+3,VIP+0):谢谢参与,欢迎常来仿真编程版 4-8 23:44
飞扬2282(金币+8,VIP+0):如何执行命令求出u,v的值呢?函数执行不了啊 4-9 10:15
function y=solveuv(u,v,N)
%Av-Bu=C
ind=floor(N/2);
A=u(ind+1:ind*2)-u(1:ind);
B=v(ind+1:ind*2)-v(1:ind);
C=v(1:ind).*u(ind+1:ind*2)-v(ind+1:ind*2).*u(1:ind);
%[A B]*[u v]'=C
y=([A B])\C;
2楼2009-04-08 18:46:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞扬2282

荣誉版主 (著名写手)

引用回帖:
Originally posted by fspdlh at 2009-4-8 18:46:
function y=solveuv(u,v,N)
%Av-Bu=C
ind=floor(N/2);
A=u(ind+1:ind*2)-u(1:ind);
B=v(ind+1:ind*2)-v(1:ind);
C=v(1:ind).*u(ind+1:ind*2)-v(ind+1:ind*2).*u(1:ind);
%[A B]*[u v]'=C
y=([A B])\C;

请问,如果
N=6;
u1=1,u2=3,u3=3,u4=4,u5=5,u6=6;
v1=1.5,v2=2.5,v3=3.5,v4=4.5,v5=5.5,v6=6.5;

如何执行命令求出u,v的值呢?函数执行不了啊?
刚接触matlab
3楼2009-04-09 10:15:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
飞扬2282(金币+10,VIP+0):其中%[A B]*[u v]'=C 是否应为%[A B]*[v -u]'=C ?? 4-9 11:20
哦,忘了说了,u,v都是列向量
N=6;
u=[1 3 3 4 5 6]';
v=[1.5 2.5 3.5 4.5 5.5 6.5]';
y=solveuv(u,v,N)
4楼2009-04-09 10:48:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见