matlab 赋值6,Matlab循环赋值问题

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))

a0=[0。1 100 -100 -1];

a=nlinfit(x,y,fun,a0)

yf=fun(a,x3);

plot(x,y,'o',x3,y3,x3,yf,'*')

结果:

3次多项式模拟函数为

0。

0032566 x^3 - 0。12242 x^2 1。5113 x 104。4824

4次多项式模拟函数为

-0。00048007 x^4 0。023554 x^3 - 0。40963 x^2 3。

0473 x 102。0444

5次多项式模拟函数为

9。6416e-005 x^5 - 0。0054588 x^4 0。11758 x^3 - 1。2012 x^2 5。9223 x

98。

5719

fun =

@(a,t)(a(1)*t。^2 a(2)*t a(3))。/(t a(4))

a =

0。0541 110。

2197 -117。8171 -1。0335。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值