拟合和绘制抛物线,matlab

时间:2011-09-26 02:49:03

标签: matlab

我有一个非常简单的问题。 我有

x=[ 10 25 50];
y=[ 1.2 3 7.5];

我知道我的曲线拟合函数

f(x)=(a*x+1)/(bx+c);

如何在matlab中得到系数(a,b,c),并且绘制这条曲线?

1 个答案:

答案 0 :(得分:3)

重新排列y = f(x)使a,b和c为未知数:

y = (ax + 1) / (bx + c)
y(bx + c) = ax + 1
ax - bxy - cy = -1;

当您替换x和y的三个配对值时,它描述了a,b和c中的联立线性方程组。

x      = [10, 20, 100];
y      = [1.2, 0.7, 0.4];
coeffs = [x', (-x.*y)', -y'];
knowns = [-1, -1, -1]';

v      = coeffs \ knowns;        % v is [a; b; c]

现在你有了系数a,b和c,所以你可以绘制函数。

附录:密谋

要绘制函数,首先选择数据点的x值

xt = 1:100;

然后计算y值(假设你已经得到a,b,c)

yt = (a*x + 1) ./ (b*x + c)

然后只是绘制它们!

plot(xt, yt);

阅读关于绘图功能的Matlab帮助,以自定义绘图的样式。