matlab编程题,求大神

1用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数),然后用... 1用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。
2
V (伏)6.36 6.48 7.26 8.22 8.66 8.99 9.43 9.63
t (秒) 0.5 1 2 3 4 5 7 9

数学拟合
展开
 我来答
zhling113
2015-06-02 · TA获得超过123个赞
知道答主
回答量:51
采纳率:0%
帮助的人:34.7万
展开全部

首先建立以个函数文件,代码如下面两行,保存到工作空间,文件名一定要是fun(因为下面的函数文件我命名为fun了)

function Vt=fun(a,t)

Vt=10-(10-a(1))*exp(-t/a(2));  %a(1)=V0,a(2) =τ


接着是主程序,包括下面全部:



%下面是数据

t=[0.5     1        2    3        4       5      7       9];

Vt=[6.36  6.48  7.26 8.22  8.66  8.99  9.43   9.63];


%matlab拟合的初值选择是一个麻烦的问题

a0=[6 0.5 ];%这是V0,τ的初值,得根据你的问题选取,我这里也是随便取的,

A=lsqcurvefit(@fun,a0,t,Vt);


%下面你可以画一个图形做拟合对比

 f=fun(A,t);

plot(t,f,'r',t,Vt,'*-b')

legend('拟合','实际数据',2)



结果:


Local minimum possible.


lsqcurvefit stopped because the final change in the sum of squares relative to 

its initial value is less than the default value of the function tolerance.


<stopping criteria details>


A =

          5.55767167903105          3.50020448743878

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式