我有一个非常简单的问题。 我有
x=[ 10 25 50];
y=[ 1.2 3 7.5];
我知道我的曲线拟合函数
f(x)=(a*x+1)/(bx+c);
如何在matlab中得到系数(a,b,c),并且绘制这条曲线?
答案 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帮助,以自定义绘图的样式。