看板 MATLAB 關於我們 聯絡資訊
我將一組 x= 1,2,3,4,5, .. y= 0.01,0.22,0.4433....(隨意舉例) 作20次方的fitting,得到一組代表y=f(x) 20次方的矩陣, 設為p20 p20=polyfit (x,y,20) p20= [a1,a2,a3,.....,a21] 代表: y=f(x)=a1x^20+a2x^19+a3x^18+.....+a20x+a21 給x求y: 當設定x1=10(某數)時,可以用polyval 解出y1 y1=polyval (p20, 3.3) 給y求x? (解不出來@@') 若假設y2=0.01 (y2 有在x 最大及最小的區間內), 請問該怎麼解出相對應的x2呢? 我有用solve ,解一些x為2次方的問題,是可以解出的,如 sym x solve (x^2=9) 得:3 -3 但p20 是個矩陣,直接打出20次方的多項試應該是能解出來, 請各位大大指導一下 如何正確寫出solve 語法解矩陣多項式,或有像polyval 快速解出來的 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.24.6 ※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1405332309.A.8D5.html ※ 編輯: seamonst (140.112.24.6), 07/14/2014 18:12:22 ※ 編輯: seamonst (140.112.24.6), 07/14/2014 18:13:28
sunev:roots 07/14 18:25
seamonst:roots 是解y=f(x)=0。而我想解的是y=f(x)= 某數,求x 07/14 21:00
kevio:那不能先將某數減過來嗎? 07/14 21:42
kevio:p20'= [a1,a2,a3.....,a21-y] 再用root求解? 07/14 21:45
感謝樓上的推文:將多項試的常數項減去某值在用root就能解了,謝謝 以下是我的寫法: %設一 a為零向量,再組合同元的要減的常數項(y_ct), 再變成相同空間向量,來減去p20,再用root解 a=zeros (1,length(p)-1) %產生 [0,0,0,,..]20個零的矩陣 shift=[a y_ct] %產生與p有相同空間的矩陣,並得到多項式的常數y_ct p20_shift=p20-shift %再用root求解 rootp_shift=roots(p20_shift) %用root解 有虛根項 ※ 編輯: seamonst (61.230.182.89), 07/17/2014 14:41:43 ※ 編輯: seamonst (61.230.182.89), 07/17/2014 14:42:42
seamonst:謝謝 sunev 跟kevio 07/17 14:45