Re: [問題] 一個方程式 超越方程式已回收

看板MATLAB作者 (蛋包飯主廚)時間17年前 (2008/11/26 02:53), 編輯推噓3(305)
留言8則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《itisover (沉默以對...)》之銘言: : 想請問大家一個問題 : 現在有4個點 x=2, 2.4 , 5, 6 : 若現在我有一個function : f(x)=(s1+s2+s3-s1*s2*s3)/(1-s1*s2-s1*s3-s2*s3) : s1=tan(pi/2*x/f1) : s2=tan(pi/2*x/f2) : s3=tan(pi/2*x/f3) : 若我現在想要滿足3個等式 f(2) = -f(6) : f(2.4) = -f(5) : f(2)*f(5)-f(2.4)*f(6) = 0 : 然後解出 f1 f2 f3 : 我是利用fsolve來解決 : 但是跑出來的都是一直叫我重新輸入新的起始點 : 想請教大家 有沒有一個較便利的方法或是寫法 : 謝謝大家看完這個問題 : 也希望有人可以解答一下 謝謝 : 麻煩大家了 謝謝 我是用solve算了一下你的case 算出來是有值啦..(會有warning) f1 = -0.23119584 f2 = 1.303353 f3 = 4.006628 只是不知道跟正確答案一不一樣.. 參考一下 % 主程式 ff1 = [ ff(2) '+' ff(6) '=0']; ff2 = [ ff(2.4) '+' ff(5) '=0']; ff3 = [ ff(2) '*' ff(5) '-' ff(2.4) '*' ff(6) '=0']; [x,y,z] = solve(ff1,ff2,ff3) % 函數 function f = ff(x) s1 =['tan(' num2str(pi/2*x) '/x)']; s2 =['tan(' num2str(pi/2*x) '/y)']; s3 =['tan(' num2str(pi/2*x) '/z)']; fu =[ s1 '+' s2 '+' s3 '-' s1 '*' s2 '*' s3]; fd =['1-' s1 '*' s2 '-' s1 '*' s3 '-' s2 '*' s3]; f = [fu '/' fd]; end -- ──———————————───┐ Always follow your dreams , don't let anyone tell you that ▃▃▃ you can't be something ───────── By A-Rod -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.38.184

11/26 09:57, , 1F
我試試看 這題我手邊沒有答案
11/26 09:57, 1F

11/26 09:58, , 2F
但是感覺上應該會有好多組答案的說
11/26 09:58, 2F

11/26 09:58, , 3F
而且忘了說f1 f2 f3都要是正的 不過還是感謝這個方法
11/26 09:58, 3F

11/26 19:19, , 4F
不過將你的直帶回式子 卻不符合 還蠻奇怪的
11/26 19:19, 4F

11/26 19:28, , 5F
你自己都說都是正的了,當然不符合
11/26 19:28, 5F

11/26 22:04, , 6F
map大你誤會意思 利用eat大的方法解出的答案帶回去
11/26 22:04, 6F

11/26 22:05, , 7F
是不符合的 而我說的都要正的 是想要看看有沒有
11/26 22:05, 7F

11/26 22:06, , 8F
全都是正的答案
11/26 22:06, 8F
文章代碼(AID): #19B4cKTB (MATLAB)
文章代碼(AID): #19B4cKTB (MATLAB)