Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-11-12, 10:30   #1
li0827cd
初级会员
 
注册日期: 2008-10-27
年龄: 49
帖子: 2
声望力: 0
li0827cd 正向着好的方向发展
默认 [求助]多项式的阶数改为变量问题,程序改进问题

初学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
怎样实现?
两个题分开解答,谢谢大家了!
li0827cd 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[分享]给大家传一个图像空间变换和直方图变换的数学推导 johnny8088 MATLAB论坛 0 2009-01-31 03:26
有哪位做过BEESSEL法数字下变频? yqgame365 MATLAB论坛 0 2008-12-07 23:53
[求助]一个有关用设计的滤波器处理声音信号的问题。 fujinhai MATLAB论坛 7 2008-11-13 09:31
Studying the World's Most Complex Dynamic Systems TechnicalArticles MATLAB技术文章 0 2008-08-29 00:40
[求助]在SIMULINK里,如何将inegrator上方的箭头移到下面去 yijianmei MATLAB论坛 1 2008-07-24 10:15


所有时间均为北京时间。现在的时间是 08:55


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.