关于指数模拟的输出

发布网友 发布时间:2022-04-21 19:28

我来回答

1个回答

热心网友 时间:2023-11-10 17:34

这下子好了。

clear;clc;
x=[2 3 4 5 7 8 10 11 14 15 16 18 19];
y=[106.42 108.26 109.58 109.5 110 109.93 110.49 110.59 110.6 110.9 110.76 111 111.2];
x3=min(x):0.1:max(x);%可以放在循环外
%v=zeros(3,6);没有必要,需要的话可以,v=[];
for n=1:3
v(n,1:n+3)=polyfit(x,y,n+2);
y3(:,n)=polyval(v(n,1:n+3),x3);
text=strcat(num2str(n+2),'次多项式模拟函数为');
disp(text);
disp(poly2str(v(n,1:n+3),'x'));
end
%用多项式拟合一般效果都不好,用分式拟合效果好
fun=@(a,t) (a(1)*t.^2 + a(2)*t + a(3))./ (t + a(4))
fun1=@(b,t) b(1)*exp(b(2)*t) + b(3)*exp(b(4)*t)
a0=[0.1 100 -100 -1];
b0=[100 0 -20 -1];
a=nlinfit(x,y,fun,a0)
b=nlinfit(x,y,fun1,b0)
ya=fun(a,x3);
yb=fun1(b,x3);
plot(x,y,'o',x3,y3)%
figure
plot(x,y,'o',x3,ya,'r',x3,yb,'k')

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com