如何用matlab画函数图象并输出函数表达式

举个例子,比如现在有2个离散的点(1,1),(2,2)
如何做出经过这两个点的函数图象并输出函数表达式y=x
如果是已知多个点的坐标,又该怎么画图并输出函数表达式y=f(x)

你这是拟合问题。

其一般做法是:

首先,观察离散点的性质,看它可能是什么函数表达式(具有较大的人为性,同一组数据,个人有个人的看法)。

其次,用这种函数表达式的一般形式去拟合,求出待定的系数。

最后,给出该函数表达式。

举个例子:

-------------------------------------------------------------------

%首先人为创造一套数据,

x=-2*pi:0.1*pi:2*pi;

num=length(x);

y=sin(x)+0.01*rand(1,num);  %取函数y=sin(x)上的点,并加上一些随机扰动(可比拟观测误差)

[x;y]

plot(x,y,'r*',x,y,'b-')  %画图查看观测点的性质,这里可以看出应该是正余弦函数

f=inline('a(1)*sin(a(2)*x+a(3))+a(4)','a','x')   %故,采用sin函数的一般表达式y=A*sin(wx+a)+b 共4个参数  来拟合。

[a res]=lsqcurvefit(f,[1 1 1 1],x,y)  %向量a就是这4个参数,res代表了和误差,可以看出,与真实还是比较接近的。

追问

我的意思是用拉格朗日差值,但是我要得到函数图象及其表达式懂吗,我重点要表达式!!比如y=kx+b(一次插值)、y=ax^2+bx+c(2次插值)等等。打个比方,我要的程序代码>>...然后回车显示表达式y=...(f(x))及图像figure1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-04
你对这个问题的看法有问题
经过这两个点的函数有很多,直线只是其中一个,
那么对于很多个点的坐标的话,函数表达式不是唯一的,你怎么确定呢?

如果你想要的是多项式函数,那就使用polyfit函数来拟合就行了!本回答被提问者采纳
相似回答