是不是知道几组点是数据,然后求出方程来?
这是拟合问题
例子:
x=0:0.1:1;
y=[-.447,1.978,3.11,5.25,5.02,4.65,4.01,4.58,3.45,5.35,9.22];
p=polyfit(x,y,3)%3表示3次
可以画图看看效果
为什么我直接报错呢,新建的时候选哪一个?刚才我写成x=[1234234]y=[123343434555]成功了。x、y数量不对应就报p=polyfit(x,y,n)报错!这样的格式,两者有什么差别吗?
x,y表示点的横坐标和纵坐标,数量不等就构不成完整的点,所以会报错>>x=0:0.1:1;y=[-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];p=polyfit(x,y,3)pp=poly2str(p,'z')%装换格式xx=0:0.01:1;yy=polyval(p,xx);%多项式求值plot(xx,yy,'-b',x,y,'.r')p=56.6915-87.117440.0070-0.9043pp=56.6915z^3-87.1174z^2+40.007z-0.90431图片上传不起,你在试试
我还是执行错误,你把输入格式完整的再写一遍吧,新建的是脚本、函数还是类,谢了!不管行不行我也要采纳了,完事儿!
x=0:0.1:1;y=[-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];p=polyfit(x,y,3)%拟合pp=poly2str(p,'z')%装换格式xx=0:0.01:1;yy=polyval(p,xx);%多项式求值plot(xx,yy,'-b',x,y,'.r')直接在命令窗口或者脚本运行就可以啊你错误提示是什么
出现p的数值和红色的错误提示全部黏贴到commandwindow提示Undefinedfunction'poly2str'forinputargumentsoftype'double'.新建函数和脚本窗口下面加上ErrorinUntitled3(line4)pp=poly2str(p,'z')%装换格式
应该对poly2str不识别,这个问题不是很大,p的值和我的值一样吗,一样就呗
那请你把上面你求出来的p和pp所对应的方程写一下吧
上面有啊p=56.6915-87.117440.0070-0.9043pp=56.6915z^3-87.1174z^2+40.007z-0.90431
写成方程式,p啊就是y=56.6915x^3-87.1174x^2+40.0070X-0.9043,我也不知道啊是这个意思?我的目的就是求y=f(x).若果对的话,顺便再说说pp
p就是你要求的f(x),当然拟合并不一定是完全百分之百拟合,pp就是让p转换下格式,写成让人一目了然的格式
哥,我知道不会百分之百拟合,但请你说说我刚才那么表达我对啊,其实我是门外汉啊,以后要怎么求y呢?
对的,f(x)就是=56.6915x^3-87.1174x^2+40.0070X-0.9043,用指令polyval(p,x)调用,比如算f(1):poly(p,1)ans=8.6768