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,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4]求A和B的值 请问该如何编写程序.
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 01:17:55
![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,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4]求A和B的值 请问该如何编写程序.](/uploads/image/z/2607857-17-7.jpg?t=matlab%E6%B1%82%E6%9B%B2%E7%BA%BF%E6%8B%9F%E5%90%88%E5%8F%82%E6%95%B0x%3D%5B0.25%2C0.5%2C0.75%2C1%2C1.5%2C2%2C2.5%2C3%2C3.5%2C4%2C4.5%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C13%2C14%2C15%2C16%5Dy%3D%5B30%2C68%2C75%2C82%2C82%2C77%2C68%2C68%2C58%2C51%2C50%2C41%2C38%2C35%2C28%2C25%2C18%2C15%2C12%2C10%2C7%2C7%2C4%5D%E6%B1%82A%E5%92%8CB%E7%9A%84%E5%80%BC+%E8%AF%B7%E9%97%AE%E8%AF%A5%E5%A6%82%E4%BD%95%E7%BC%96%E5%86%99%E7%A8%8B%E5%BA%8F.)
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,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4]求A和B的值 请问该如何编写程序.
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,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4]
求A和B的值 请问该如何编写程序.
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,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4]求A和B的值 请问该如何编写程序.
需要用到非线性拟合函数,按你这个式子我试了下好像拟合不出结果,所以我把你的式子简化了一下,前面那一部分(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的第一、第二数和第三个数