matlab求曲线拟合参数

x=[0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16]y=[30,68,75,8... x=[0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16]
y=[30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4]

求A和B的值 请问该如何编写程序。。。
展开
 我来答
百度网友1c6e06f
2014-05-05 · TA获得超过2893个赞
知道小有建树答主
回答量:695
采纳率:66%
帮助的人:643万
展开全部

需要用到非线性拟合函数,按你这个式子我试了下好像拟合不出结果,所以我把你的式子简化了一下,前面那一部分(35.72A/4333.3(B-A))其实也可以看做一个参数,就叫做C吧,自己建立一个m文件,我起名为shiyan1.m

function shiyan1
xdata = [0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16 ];
ydata = [ 30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4];
a0 = [ 1, 1, 1 ];   % 初始化参数
[ a, resnorm ] = lsqcurvefit( @subfun, a0, xdata, ydata )

% 绘制曲线
fy = subfun( a, xdata );
figure( 1 );
plot( xdata, ydata, 'r*' );
hold on;
plot( xdata, fy, 'b-' );
legend( '原始数据', '拟合数据' )


function y = subfun( a, x )
%     y = ( 35.72 * a( 1 ) / ( 4333.3 * ( a( 2 ) - a( 1 ) ) ) ) *...
%         ( exp( -a( 1 ) * x ) - exp( -a( 2 ) * x ) );
    y = a( 3 ) * ( exp( -a( 1 ) * x ) - exp( -a( 2 ) * x ) );


你所要求得A B C就是代码里a的第一、第二数和第三个数

Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式