24小时热门版块排行榜    

查看: 1164  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] filecode +3 documentary 2026-08-10 3/150 2026-08-10 16:46 by 且听虎啸
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +7 家与远方 2026-08-10 10/500 2026-08-10 16:31 by vivianleos
[基金申请] FileCode能看出啥? +4 要乐观耀哥 2026-08-10 8/400 2026-08-10 15:02 by 天神眷顾
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +14 Lanmanbaby 2026-08-09 22/1100 2026-08-10 14:57 by wwncly
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +4 布布和一二 2026-08-10 4/200 2026-08-10 14:50 by 医学老男孩
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +11 archvillain 2026-08-04 13/650 2026-08-10 14:41 by seekfind
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +10 yufeiwaner 2026-08-09 10/500 2026-08-10 13:44 by cdutwml
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 娱乐 +6 Tide man 2026-08-03 6/300 2026-08-07 22:40 by 铁帽子农民
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 纯娱乐,不喜欢勿喷 +7 Tide man 2026-08-04 10/500 2026-08-04 15:10 by loufangrui
信息提示
请填处理意见