[討論] 多項式矩陣用給y(xi), 求xi (已解決)

看板MATLAB作者時間11年前 (2014/07/14 18:05), 11年前編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
我將一組 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

07/14 18:25, , 1F
roots
07/14 18:25, 1F

07/14 21:00, , 2F
roots 是解y=f(x)=0。而我想解的是y=f(x)= 某數,求x
07/14 21:00, 2F

07/14 21:42, , 3F
那不能先將某數減過來嗎?
07/14 21:42, 3F

07/14 21:45, , 4F
p20'= [a1,a2,a3.....,a21-y] 再用root求解?
07/14 21:45, 4F
感謝樓上的推文:將多項試的常數項減去某值在用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

07/17 14:45, , 5F
謝謝 sunev 跟kevio
07/17 14:45, 5F
文章代碼(AID): #1JmwjLZL (MATLAB)
文章代碼(AID): #1JmwjLZL (MATLAB)