紧急,在线等。matlab上的对数函数数据拟合。y=algx+b

实验数据:x=[5005506006507007508008509009501000];y=[62.469.275.482.270.468.475.277.871.675... 实验数据:
x=[500 550 600 650 700 750 800 850 900 950 1000];
y=[62.4 69.2 75.4 82.2 70.4 68.4 75.2 77.8 71.6 75.6 72.2];
图中既有曲线也有数据点,最好能求出a,b.
展开
 我来答
program_c
2012-06-15 · TA获得超过149个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:174万
展开全部

clc;clear;

x=[500 550 600 650 700 750 800 850 900 950 1000];

y=[62.4 69.2 75.4 82.2 70.4 68.4 75.2 77.8 71.6 75.6 72.2];

plot(x,y);

x_log=log10(x);

A=polyfit(x_log,y,1)

hold on;

plot(x,A(1).*log10(x)+A(2),'r');

追问
有人说polyfit只适合多项式拟合,不适合对数,指数。但图像看着是对的。
追答
看程序的第5行,x_log=log10(x)
做了一个转换,对x取对数,得到一个中间变量x_log,这个中间变量和y的关系是线性关系。
用polyfit函数求x_log和y的拟合就行了。
不懂的再问。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式