24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1623  |  回复: 12

cyberspecter

至尊木虫 (职业作家)

[求助] 关于数组的下标已有5人参与

MATLAB中的数组下标是从1开始,那么下图中问题如何编程实现?求助

关于数组的下标
2015-06-28_224941.png
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

guo_zy_123

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
cyberspecter: 金币+70, ★★★很有帮助 2015-07-01 22:58:46
function [y] = y(k0)

if k0==0
    y=1;
elseif k0==1
    y=0;
else
S = [];
for i = [0:1:k0]
s = Y(i,S);
S = [S s];
end
y = S(k0-1);

end

end

function  [s] = Y(k0,S)
s1=0;
if k0==0
    s=1;
elseif k0==1
    s=0;
elseif k0==2
    s=-0.65;
else
       s1=0;
       k=k0-2;
       for k2=1:k
         for k1=1:k2
             s1=-0.3/(k+1)/(k+2)*S(k1+1)*S(k2-k1+1)*S(k-k2+1)+s1;
         end
       end
    s=s1-1/(k+1)/(k+2)*S(k+1);
end
end


将这两个函数贴到1个脚本里,用matlab计算就行了,解决了那个反复递归的再计算问题,将中间变量直接存储处理的
老古董
7楼2015-07-01 11:47:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 谢谢应助 2015-07-04 06:17:06
xzhdty: 金币+1 2015-07-04 06:18:19
实际中Y(0)=1;Y(1)=0;程序里Y(1)=1;Y(2)=0;
实际中k1=0,k2=100;程序中k1=1,k2=101
这样就可以了,程序中下标也就是指的第几个数而已
学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
2楼2015-06-30 13:25:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cyberspecter

至尊木虫 (职业作家)

引用回帖:
2楼: Originally posted by qqinly at 2015-06-30 13:25:05
实际中Y(0)=1;Y(1)=0;程序里Y(1)=1;Y(2)=0;
实际中k1=0,k2=100;程序中k1=1,k2=101
这样就可以了,程序中下标也就是指的第几个数而已

这个是知道的,但是里面有个k2-k1可能出现k(0),这就不好玩了。所以编程还是有些糊涂,能不能具体实现一下哩?

[ 发自小木虫客户端 ]
3楼2015-06-30 14:18:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1134684571

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
cyberspecter: 金币+50 2015-07-01 22:59:18
function  [s] = Y(k0)
s1=0;
if k0==0
    s=1;
elseif k0==1
    s=0;
elseif k0==2
    s=-0.65;
else
       s1=0;
       k=k0-2;
       for k1=1:k
         for k2=1:k1
             s1=-0.3/(k+1)/(k+2)*Y(k1)*Y(k2-k1)*Y(k-k2)+s1;
         end
       end
    s=s1-1/(k+1)/(k+2)*Y(k);
end
试一下递归调用,此程序还有问题,你自己可再修改一下。要保存维数组的的话,重新定义一个就可以。。。。
4楼2015-06-30 21:15:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名

【答案】应助回帖

引用回帖:
3楼: Originally posted by cyberspecter at 2015-06-30 14:18:37
这个是知道的,但是里面有个k2-k1可能出现k(0),这就不好玩了。所以编程还是有些糊涂,能不能具体实现一下哩?
...

呃,特例的话,可以在for循环中用if语句实现
学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
5楼2015-06-30 23:36:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
function [y] = y(k0)

if k0==0
    y=1;
elseif k0==1
    y=0;
else
S = [];
for i = [0:1:k0]
s = Y(i,S);
S = [S s];
end
y = S(k0-1);

end

end

function  [s] = Y(k0,S)
s1=0;
if k0==0
    s=1;
elseif k0==1
    s=0;
elseif k0==2
    s=-0.65;
else
       s1=0;
       k=k0-2;
       for k2=1:k
         for k1=1:k2
             s1=-0.3/(k+1)/(k+2)*S(k1+1)*S(k2-k1+1)*S(k-k2+1)+s1;
         end
       end
    s=s1-1/(k+1)/(k+2)*S(k+1);
end
end
老古董
6楼2015-07-01 11:45:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

【答案】应助回帖

感谢参与,应助指数 +1
可以先直接定义为递归函数,然后用递归函数赋值给数组

我用符号计算方式得到结果依次是这样的:



如果求精确解,容易看出计算量增加很快; 但如果不要精确结果,只是数值解,可以快很多;

» 本帖已获得的红花(最新10朵)

ส็็็็็็็็็็็็็็็็็็็็
8楼2015-07-01 14:38:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

★ ★
xzhdty: 金币+2, 谢谢应助 2015-07-04 06:18:03
引用回帖:
8楼: Originally posted by cooooldog at 2015-07-01 14:38:58
可以先直接定义为递归函数,然后用递归函数赋值给数组

我用符号计算方式得到结果依次是这样的:

\left\{1,0,-\frac{13}{20},0,\frac{247}{2400},0,-\frac{13819}{720000},0,\frac{246103}{57600000},0,-\frac{4 ...

ส็็็็็็็็็็็็็็็็็็็็
9楼2015-07-01 14:40:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

引用回帖:
9楼: Originally posted by cooooldog at 2015-07-01 14:40:17
\left\{1,0,-\frac{13}{20},0,\frac{247}{2400},0,-\frac{13819}{720000},0,\frac{246103}{57600000},0,-\frac{45642571}{51840000000},0,\frac{12297341329}{68428800000000}\right\}...

看上去50个以后就衰减到近似于数值0了; 定义这种数列有什么意义呢?

ส็็็็็็็็็็็็็็็็็็็็
10楼2015-07-01 14:58:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cyberspecter 的主题更新
信息提示
请填处理意见