24小时热门版块排行榜    

查看: 1228  |  回复: 14
当前主题已经存档。

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的回帖

sci_chris

金虫 (正式写手)

★ ★ ★ ★
sunxiao(金币+4,VIP+0):谢谢参与,欢迎常来仿真编程版 4-9 23:13
引用回帖:
求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?

按照楼主的意思,N应该是偶数了?如果是奇数,那N/2就不是一个整数,会导致u不能分成相同长度的向量,这个在matlab中是不能做的。

其实不用编成m文件进行调用,因为最小二乘可以表示成矩阵计算的,就是我在8楼说的:
b = inv(X'*X)*X'*y;

我们可以把算式(uj-ui)v-(vj-vi)u=vi*uj-vj*ui表示成矩阵相乘的形式(如果这个不是很清楚,建议看线性代数),(uj-ui)看成向量x1中的元素,(vj-vi)看成向量x2中的元素,vi*uj-vj*ui看成向量y中的元素,即把(uj-ui) (i=1:N/2)的结果放到一个向量中,同样把(vj-vi),vi*uj-vj*ui放到一个向量中,就像楼上做的:
x1=u(1:N/2)-u(N/2+1:N);
x2=-(v(N/2+1:N)-v(1:N/2));
y=v(1:N/2).*u(N/2+1:N)-v(N/2+1:N).*u(1:N/2);

然后:
X = [x1 x2];  % 自变量X
b = [u;v];      % 系数b

那整个方程就变成:
X*b = y;

根据最小二乘原理:
b = inv(X'*X)*X'*y;
b中的对应元素就是u,v;

这里我有点疑问:(uj-ui)v-(vj-vi)u=vi*uj-vj*ui中uj, ui, vj, vi是不是向量u, v 中的元素?那u, v变成已知的?如果u, v是未知数,建议不要写成u, v,要不然会和前面的ui, uj, vi, vj混淆,这个在线性代数中是很容易产生误会的~~

[ Last edited by sci_chris on 2009-4-10 at 08:29 ]
12楼2009-04-09 22:35:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞扬2282

荣誉版主 (著名写手)

引用回帖:
Originally posted by fspdlh at 2009-4-9 18:28:
我老是出点错,麻烦版主退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) ...

谢谢fspdlh,之前没用过matlab,最近项目中涉及一些数学运算,所以没办法用matlab来编写公式。刚接触几天,很菜啊,呵呵。
金币版主就不用退了,谢谢帮助
13楼2009-04-10 10:26:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞扬2282

荣誉版主 (著名写手)

引用回帖:
Originally posted by sci_chris at 2009-4-9 22:35:


按照楼主的意思,N应该是偶数了?如果是奇数,那N/2就不是一个整数,会导致u不能分成相同长度的向量,这个在matlab中是不能做的。

其实不用编成m文件进行调用,因为最小二乘可以表示成矩阵计算的,就是我在 ...

谢谢sci_chris,麻烦版主给sci_chris加20个金币,从我这里扣吧,谢谢。


对,N的取值必须是偶数;uj, ui, vj, vi不是向量u, v 中的元素,写成u, v是容易误会

我也没有使用m文件进行调用,因为我还不知道怎么调用m文件

我是把fspdlh的代码修改了一下使用的,就是和你说的差不多:

N=6;
u=[1 3 3 4 5 6]';
v=[1.5 2.5 3.5 4.5 5.5 6.5]';

%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=[v u]';
y=([A -B])\C

y =

    5.5000
    5.0000

输出u是5.5,v是5(fspdlh,我觉得输出应该第一个值是v,第二个值是u吧?)
14楼2009-04-10 10:35:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

呵呵,是的,我在11楼又加了一句
y=[y(2) y(1)]';
这样应该就没问题了
15楼2009-04-10 11:00:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 飞扬2282 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +17 爱看书的可乐 2026-08-26 19/950 2026-08-30 22:24 by xiangy672
[基金申请] 能否申诉? +4 echo8914667 2026-08-30 5/250 2026-08-30 21:11 by echo8914667
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 中青基了要发朋友圈吗? +4 349506619 2026-08-28 4/200 2026-08-29 22:41 by alongwaytogo
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 基金不中,共勉 +11 eulota 2026-08-26 11/550 2026-08-28 14:22 by 火星超人xi
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
信息提示
请填处理意见