24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1549  |  回复: 16

colin_wang

木虫 (正式写手)

[交流] 【求助】用MATLAB编程求级数的和已有2人参与

用MATLAB写函数(1)求1+1/2+1/3+1/4+......+1/n的和,然后调用此函数(2)怎样编程使得这个值变大?
希望将函数的编译过程写下来

要求算出来值能达到22点多 也就是说能调用譬如1000000000000等等的函数

[ Last edited by colin_wang on 2010-10-13 at 22:06 ]
回复此楼
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

★ ★
colin_wang(金币+1):谢谢参与
ajian04(金币+1):欢迎交流~ 2010-10-13 12:20:35
colin_wang(金币+2): 2010-10-13 14:19:35
colin_wang(金币+5): 2010-10-13 14:23:09
colin_wang(金币+5):非常感谢 2010-10-13 14:35:50
用个简单的迭代就可以了。MATLAB没提供正整数判断的函数,我也没更好的办法,所以只加了大于零的判断。
CODE:
function f = sumfun( n )
if n <= 0
    disp( 'Input error' );
else
    if n == 1
        f = 1;
    else
        f = 1 / n + sumfun( n - 1 );
    end
end

明德厚学、求是创新
2楼2010-10-13 11:58:42
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

wng406312

新虫 (初入文坛)

colin_wang(金币+1):谢谢参与
余泽成(金币-1):请不要在专业版块灌水,谢谢合作! 2010-10-16 17:05:53
不太熟悉,混个金币,呵呵
3楼2010-10-13 13:22:07
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

coolxh

木虫 (小有名气)


colin_wang(金币+1):谢谢参与
colin_wang(金币+2): 2010-10-13 14:19:44
充分发挥MATLAB矩阵运算的优势而不用迭代可能运算效率更高些

function fy=accumulatedf(n)

if n<=0
   disp('Input error')
   quit
else
   x=[1:1:n];
   tx=1./x;
   f=sum(tx);
end
引用回帖:
Originally posted by xiegangmai at 2010-10-13 11:58:42:
用个简单的迭代就可以了。MATLAB没提供正整数判断的函数,我也没更好的办法,所以只加了大于零的判断。

[code]function f = sumfun( n )
if n <= 0
    disp( 'Input error' );
else
    if n == 1
   ...

4楼2010-10-13 13:49:55
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

colin_wang(金币+1): 2010-10-13 14:11:10
引用回帖:
Originally posted by coolxh at 2010-10-13 13:49:55:
充分发挥MATLAB矩阵运算的优势而不用迭代可能运算效率更高些

function fy=accumulatedf(n)

if n<=0
   disp('Input error')
   quit
else
   x=[1:1:n];
   tx=1./x;
   f=sum(tx);
end


用数组计算是很好的,学习了。

MATLAB用递归还存在一个问题,MATLAB默认的最大递归调用次数500,给使用带来不便。
明德厚学、求是创新
5楼2010-10-13 14:03:24
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

colin_wang

木虫 (正式写手)

引用回帖:
Originally posted by xiegangmai at 2010-10-13 11:58:42:
用个简单的迭代就可以了。MATLAB没提供正整数判断的函数,我也没更好的办法,所以只加了大于零的判断。

[code]function f = sumfun( n )
if n <= 0
    disp( 'Input error' );
else
    if n == 1
   ...

我把这个存为M文件后 然后在命令窗口调用 显示的是 sumfun(2)
??? Undefined function or variable 'sumfun'.
6楼2010-10-13 14:17:21
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

colin_wang

木虫 (正式写手)

ajian04:欢迎交流~ 2010-10-14 09:49:39
我把这个存为M文件后 然后在命令窗口调用 显示的是 accumulatedf(2)
??? Undefined function or variable 'accumulatedf'.
引用回帖:
Originally posted by coolxh at 2010-10-13 13:49:55:
充分发挥MATLAB矩阵运算的优势而不用迭代可能运算效率更高些

function fy=accumulatedf(n)

if n<=0
   disp('Input error')
   quit
else
   x=[1:1:n];
   tx=1./x;
   f=sum(tx);
end


7楼2010-10-13 14:21:39
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

coolxh

木虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
colin_wang(金币+2): 2010-10-13 16:23:06
文件保存的路径在哪里,是否在Matlab的搜索路径范围内?
引用回帖:
Originally posted by colin_wang at 2010-10-13 14:21:39:
我把这个存为M文件后 然后在命令窗口调用 显示的是 accumulatedf(2)
??? Undefined function or variable 'accumulatedf'.  






8楼2010-10-13 16:08:49
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

colin_wang

木虫 (正式写手)

引用回帖:
Originally posted by coolxh at 2010-10-13 16:08:49:
文件保存的路径在哪里,是否在Matlab的搜索路径范围内?


我放在MATLAB文件夹一个叫bin文件夹的根目录的一个自己建的M文件夹里面
9楼2010-10-13 16:16:38
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

colin_wang

木虫 (正式写手)

ajian04:欢迎交流~ 2010-10-14 09:49:46
帖子到前面去吧
10楼2010-10-13 22:17:02
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 colin_wang 的主题更新
信息提示
请填处理意见