我将一组 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://webptt.com/cn.aspx?n=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
1F:推 sunev:roots 07/14 18:25
2F:→ seamonst:roots 是解y=f(x)=0。而我想解的是y=f(x)= 某数,求x 07/14 21:00
3F:→ kevio:那不能先将某数减过来吗? 07/14 21:42
4F:→ 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
5F:→ seamonst:谢谢 sunev 跟kevio 07/17 14:45