欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab由x得到y,matlab 已知x、y值以及函数,求未知参数

发布时间:2024/4/18 循环神经网络 67 豆豆
生活随笔 收集整理的这篇文章主要介绍了 matlab由x得到y,matlab 已知x、y值以及函数,求未知参数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

满意答案

1位老农民

2013.10.03

采纳率:59%    等级:12

已帮助:5911人

matlab 非线性的拟合有两个命令lsqcurvefit和lsqnonlin。这里用lsqcurvefit(lsqnonlin一样做),先介绍下lsqcurvefit(原理是最小二乘法)

已知数据点:xdata=(xdata1,xdata2,…,xdatan)

ydata=(ydata1,ydata2,…,ydatan)

lsqcurvefit用以求含参量x(向量)的向量值函数

F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T

中的参变量x(向量),使得1/2*∑[a+b*exp(-0.02*k*t(i))-c(i)]^2最小

1.先定义个函数fun

function y=fun(x,t)

y=(x(1)+x(2)*t.^x(3)).*(1-t).^x(4);

2.调用

clc

clear

tdata=[0.0015 0.0073 0.0125 0.0415 0.0725 0.1030 0.1323 0.1607 0.1879 0.2141 0.2392 0.2632 0.2862 0.3081 0.3291];

ydata=[-2.8988 -0.1635 0.0122 0.0174 0.0181 0.0176 0.0170 0.0164 0.0159 0.0153 0.0146 0.0140 0.0134 0.0129 0.0125];

x0=[1 1 1 1];

x=lsqcurvefit('fun',x0,tdata,ydata)

结果a =-12.4986 b =31.6477 m =0.2062

n =250.3035

*****有一个地方x0=[1 1 1 1];这边是x0迭代的初始值即a,b,m,n迭代的初始值,你可以自己修改一下(根据建的模型,找你认为近似的解或可行解带入可以提高结果精度)初始值的不同对解有点影响,但不大

11分享举报

总结

以上是生活随笔为你收集整理的matlab由x得到y,matlab 已知x、y值以及函数,求未知参数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。