Re: [問題] 關於連加 x+2x+3x+......+nx已回收
※ 引述《a90447x (IAN)》之銘言:
: 由於剛接觸不久
: 加上GOOGLE相關的資料 不是很清楚
: 可不可以各位大大幫幫忙 給點小提示
: 讓我完成作業呢
: 想做的問題如下
: y=x+2x+3x+....+nx
: 如何用MATLAB表示呢
: 小弟想法如下
: for i=1:n
: y=ix
: z=sum(y)
: end
: 結果出現
: ??? Undefined function or variable 'n'.
: 懇求各位大大
: 要如何做 才能出現熟悉的表示式
: y=[n(n+1)/2]*x
: 並做圖
: 呢
我想你要的是symbolic的用法 只是Matlab藏在很裡面的地方
除非你知道關鍵字 不然不可能用help sym 就try出sym的所有用法
先說你的程式 即使你再定義sym n 也是不能用
因為文字符號這東西 似乎不能放在 for 的累增敘述中
我是從錯誤訊息這樣猜的... 也就是說只能 for 1:10 不能 for 1:n
如果要達成累加 y=x+2x+3x+....+nx 要使用sym的專用累加函式 symsum
做法就是先寫好累加項的一般式 : k*x
然後 symsum( 一般式 , 累增對象變數 , 累增起始 , 累增終結 )
以這個例子會寫成
symsum( k*x , k , 1 , n) 代表 kx 從k=1累加到k=n
可是最後結果會是 1/2*x*(n+1)^2-1/2*(n+1)*x
答案是對 但只是式子整理不漂亮
此時可以追加 simple (symsum( k*x , k , 1 , n))
它會把很多種整理方法全部列出來 例如因式分解 拆項 簡化等等
就選擇你想要的 我想這裡只要用因式分解就好了
factor(symsum( k*x , k , 1 , n)) = 1/2*x*n*(n+1)
如果要比較視覺化要用 pretty( ans )
然而在大型算式中無論怎樣簡化視覺化通常仍然不是人類可以看的東西...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.69.71.19
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章