24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1612  |  回复: 13
本帖产生 1 个 数学EPI ,点击这里进行查看

hui470

新虫 (小有名气)

[求助] MATLAB编程计算一个简单的数学式子。已有1人参与

计算式子如图,其中输入参数为一个n*m的实矩阵,u(ij)表示矩阵第i行第j列的元素。
恳求各位大神帮忙编写一个MATLAB程序。在这里先谢谢各位了!!!

MATLAB编程计算一个简单的数学式子。
NN@$3[4}R)WN6[89WNCL285.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

bluesine

铁杆木虫 (职业作家)

科苑小木虫

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
hui470: 金币+100, ★★★★★最佳答案 2015-11-18 18:06:08
Edstrayer: 数学EPI+1 2016-01-02 00:28:32
代码如下:下面例子以U= [1 2 3; 4 5 6; 7 8 9; 10 11 12]为例子计算得到的结果,其他值的时候只需要改版U即可
U = [1 2 3; 4 5 6; 7 8 9; 10 11 12];
[n,m] = size(U);
y = (13/12)^m;
for i=1:n
    for k=1:m
        tmp = abs(U(i,k)-1/2);
        y = y -2/n*(1+1/2*tmp- 1/2*tmp^2);
    end
end
for i=1:n
    for j=1:n
        for k=1:m
            tmp1 = U(i,k)-1/2;
            tmp2 = U(j,k)-1/2;
            tmp3 = tmp1 -tmp2;            
            y = y + 1/n^2*(1+1/2*abs(tmp1)+1/2*abs(tmp2) -1/2*abs(tmp3));
        end
    end
end
y

此例子结果
y =

  136.3964
板凳要做十年冷文章不发一个字
4楼2015-11-18 10:13:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

bluesine

铁杆木虫 (职业作家)

科苑小木虫

完整代码:
U = [0.16666667         0.83333333         0.50000000
0.50000000         0.16666667         0.83333333
0.16666667         0.16666667         0.16666667
0.50000000         0.50000000         0.50000000
0.83333333         0.16666667         0.50000000
0.16666667         0.50000000         0.83333333
0.50000000         0.83333333         0.16666667
0.83333333         0.50000000         0.16666667
0.83333333         0.83333333         0.83333333 ];
[n,m] = size(U);

y = (13/12)^m;

for i=1:n
    tmpZ =1;
    for k=1:m
        tmp = abs(U(i,k)-1/2);
        tmpZ =tmpZ*(1+1/2*tmp-1/2*tmp^2);
    end
    y = y-2/n*tmpZ;
end

for i=1:n
    for j=1:n
        tmpZ =1;
        for k=1:m
            tmp1 = 1/2*(U(i,k)-1/2);
            tmp2 = 1/2*(U(j,k)-1/2);
            tmp3 = (tmp1 -tmp2);
            tmpZ = tmpZ * (1+abs(tmp1)+abs(tmp2)-abs(tmp3));
        end
       y = y + 1/n^2*tmpZ;
    end
end
y
结果为:
y =

    0.0330
板凳要做十年冷文章不发一个字
9楼2015-11-19 08:44:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

hui470

新虫 (小有名气)

输出结果是cd的平方就可以了
2楼2015-11-17 13:40:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hui470

新虫 (小有名气)

自己顶下,求大神来解救!!!!!!
3楼2015-11-18 00:49:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hui470

新虫 (小有名气)

引用回帖:
4楼: Originally posted by bluesine at 2015-11-18 10:13:16
代码如下:下面例子以U= 为例子计算得到的结果,其他值的时候只需要改版U即可
U = ;
= size(U);
y = (13/12)^m;
for i=1:n
    for k=1:m
        tmp = abs(U(i,k)-1/2);
        y = y -2/n*(1+1/2*tmp-  ...

非常感谢!!!
5楼2015-11-18 18:07:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hui470

新虫 (小有名气)

引用回帖:
4楼: Originally posted by bluesine at 2015-11-18 10:13:16
代码如下:下面例子以U= 为例子计算得到的结果,其他值的时候只需要改版U即可
U = ;
= size(U);
y = (13/12)^m;
for i=1:n
    for k=1:m
        tmp = abs(U(i,k)-1/2);
        y = y -2/n*(1+1/2*tmp-  ...

亲 这个程序哪里不对。。。。例如
0.16666667         0.83333333         0.50000000
0.50000000         0.16666667         0.83333333
0.16666667         0.16666667         0.16666667
0.50000000         0.50000000         0.50000000
0.83333333         0.16666667         0.50000000
0.16666667         0.50000000         0.83333333
0.50000000         0.83333333         0.16666667
0.83333333         0.50000000         0.16666667
0.83333333         0.83333333         0.83333333
这个矩阵的输出应该是:0.033034
这个程序输出的是一个负数。。。。。。。。。。。。。。。。。
6楼2015-11-18 19:38:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluesine

铁杆木虫 (职业作家)

科苑小木虫

引用回帖:
6楼: Originally posted by hui470 at 2015-11-18 19:38:01
亲 这个程序哪里不对。。。。例如
0.16666667         0.83333333         0.50000000
0.50000000         0.16666667         0.83333333
0.16666667         0.16666667         0.16666667
0.50000000         0.50000000         0.50000000
0.83333333         0.166 ...

不好意思,连乘符号看漏了。。。下面补上:

U = [1 2 3; 4 5 6; 7 8 9; 10 11 12];
[n,m] = size(U);
y = (13/12)^m;
for i=1:n
    for k=1:m
        tmp = abs(U(i,k)-1/2);
        y = y -2/n*(1+1/2*tmp- 1/2*tmp^2);
    end
end

for i=1:n
    for j=1:n
       tmpZ =1;
        for k=1:m
            tmp1 = 1/2*(U(i,k)-1/2);
            tmp2 = 1/2*(U(j,k)-1/2);
            tmp3 = 1/2*(tmp1 -tmp2);
            tmpZ = tmpZ * (1+abs(tmp1)+abs(tmp2)-abs(tmp3));
        end
       y = y + 1/n^2*tmpZ;
    end
end
y
板凳要做十年冷文章不发一个字
7楼2015-11-19 08:35:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluesine

铁杆木虫 (职业作家)

科苑小木虫

引用回帖:
7楼: Originally posted by bluesine at 2015-11-19 08:35:29
不好意思,连乘符号看漏了。。。下面补上:

U = ;
= size(U);
y = (13/12)^m;
for i=1:n
    for k=1:m
        tmp = abs(U(i,k)-1/2);
        y = y -2/n*(1+1/2*tmp- 1/2*tmp^2);
    end
end

...

tmp3 = 1/2*(tmp1 -tmp2);
改成tmp3 =  (tmp1 -tmp2);
板凳要做十年冷文章不发一个字
8楼2015-11-19 08:38:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

getengqing

木虫 (正式写手)

引用回帖:
9楼: Originally posted by bluesine at 2015-11-19 08:44:16
完整代码:
U = ;
= size(U);

y = (13/12)^m;

for i=1:n
    tmpZ =1;
    for k=1:m
        tmp = abs(U(i,k)-1/2);
        tmpZ =tmpZ*(1+1/2*tmp-1/2*tmp^2);
    end
    y = y-2/n*tmpZ;
en ...

大神啊
一起交流学习/分享优秀资源
10楼2015-11-19 09:10:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hui470 的主题更新
信息提示
请填处理意见