看板 MATLAB 關於我們 聯絡資訊
※ 引述《hsuanboy (壓力)》之銘言: : 比如一個例子: : 分子為:-3^X+4X+1由0積到theat角 : 分母為:-3^X+4X+1由0積到pi/3 : 上面的兩式相除會等於1/20 : 求theat角為多少 : 以下是我初試寫的 真的是剛學 還不是很懂 希望有好心的大大能幫忙 : syms x : function g1=fun(x) matlab 的m-file有兩種 一種是執行檔式的 可以直接按F5執行 效果相當於將指令逐行貼到Command Window執行 另一種是函數形式的 開頭必須是function [output]=fname(input) 檔名也必須存成fname(需要對應 ^^^^^) 以function 定義函數也只能出現在function型的m-file 這裡你要在執行式的m-file定義函數建議你使用匿名函數 g1=@(x) -3.^x+4*x+1 這裡我是照你上面的例子打 你下面似乎是想打-3*x.^2+4*x+1 : g1=-3(x).^2+4x+1; : area1=quadl(@fun,0,1/3pi); : function g2=fun(x) : g2=-3(x).^2+4x+1; : area2=quadl(@fun,0,theat); : function y=fun(x);y=1/20 : y=area1/area2; : pretty(y) : 我這樣寫是哪邊有錯的呢 : 希望有大大能幫我更改的 : 謝謝阿!! matlab積分可以用int和quad int是做解析的積分 quad是做數值積分 你的分子積分上界含有變數 因此數值積分不適用 分母兩個都可以 然後分子/分母=1/20變成一個含有theat的方程式 要求解可以用solve 程式碼如下 syms theat num=int('-3.^X+4*X+1',0,theat) g2=@(x) -3.^x+4*x+1; den=quad(g2,0,pi/3,eps) % den=int('-3.^X+4*X+1',0,pi/3) eq=num/den-1/20 theat=solve(eq) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.27.59
vincent59:謝謝指教 05/01 14:36