matlab 多项式变量赋值,[求助]多项式的阶数改为变量问题,程序改进问题

icon1.gif [求助]多项式的阶数改为变量问题,程序改进问题

初学matlab,遇到两个问题,请好心人解答

下面是我做的一个多项式拟合曲线的方法,输入拟合阶数,就得该阶数的拟合数据但是有个缺点,

就是sk2的数值大的话,运行起来就很慢。有没有改进的方法?谢谢!程序如下:

clear

sk1=7

x=[11,14,16,18,20,21.6,24,28,32,35,36]

y1=[161.5000,199.1000,253.6000,269.4000,269.400,265.60,259.30,259.200,262.00,248.100,243.3000]

str_n={'输入阶数'}

nh_n={'5'}

bk_n=inputdlg(str_n,'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnn',1,nh_n)

bk_n'

bk_n1=str2num(char(bk_n(1)))

a1=polyfit(x,y1,bk_n1);

plot(x,y1,'k:','marker','o')

hold on

sk2=36

sk=sk2-sk1

s1=polyval(a1,x)

for n=1:sk

sk3(n)=sk1+n

%s1(n)=polyval(a1,sk1)

%ssd(n)=a1*l

%ssd(n)=a1*[(n+sk1)^4;(n+sk1)^3;(n+sk1)^2;(n+sk1);1]; %多项式公式

end

s1=polyval(a1,sk3)

plot(sk3,s1)

hold off

s1

s1是我想要的值s1(n)

另外一个问题:原来程序中的多项式是定值,运行起来就没那么复杂,公式如下:ssd(n)=a1*[(n+sk1)^4;(n+sk1)^3;(n+sk1)^2;(n+sk1);1]; %多项式公式

现在我想把多项式的阶数k定为变量,[(n+sk1)^4;(n+sk1)^3;(n+sk1)^2;(n+sk1);1],将(n+sk1)^k都赋值到一个数组ss1中,ss1=,[(n+sk1)^4;(n+sk1)^3;(n+sk1)^2;(n+sk1);1],然后在ssd(n)=a1*b1

怎样实现?

两个题分开解答,谢谢大家了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值