⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18-曲线拟合和多项式拟合-2.m__.htm

📁 机械原理、设计matlab程序,01-连杆机构的运动设计-1.m__.htm 等
💻 HTM
字号:
<html><head><title>MATLAB.rar 18-曲线拟合和多项式拟合-2.m</title>
<LINK href="/inc/read_style.css" type=text/css rel=stylesheet></head>
<body>
<p><a href=http://www.pudn.com>www.pudn.com</a> &gt; <a href="http://www.pudn.com/downloads111/sourcecode/graph/detail461284.html">MATLAB.rar</a> &gt 18-曲线拟合和多项式拟合-2.m</p><!-- saved from http://www.pudn.com -->
<script src="/inc/gg_read1.js"></script><BR>
<pre name="code" class="m">
% 曲线拟合 
disp '*****  圆柱齿轮复合齿形系数Yfs与当量齿数Zv的关系  ******' 
lx=input('选择曲线类型:1-双曲线;2-幂函数;3-负指数;4-S型;5-指数;6-对数;7-直线 = '); 
x0=input('  输入插值点:x0 = '); 
n = 18; 
x=zeros(n); y=zeros(n); ys=zeros(n); ya=zeros(n); s=zeros(n); 
x=[12 13 14 15 16 17 18 19 20 25 30 35 40 45 50 60 70 80]; 
y=[5.05 4.91 4.79 4.70 4.61 4.55 4.48 4.43 4.38 4.22 4.13 4.08 4.05 4.02 4.01 3.88 3.88 3.88]; 
x1 = x(1); xn = x(n); 
for i = 1 : n 
   ya(i) = y(i); 
end 
disp '     Zv        Yfs' 
for i = 1 : n 
   zy = [x(i) y(i)]; 
   disp(zy) 
end 
% 绘制实验数据列表离散点图(红色,圆点,栅格,保持图形) 
plot(x,y,'r.') 
grid 
hold on;  
% 根据曲线类型进行变量代换 
for i = 1 : n 
   switch lx 
      case 1 
         x(i) = 1 / x(i); y(i) = 1 / y(i); 
      case 2 
         x(i) = log(x(i)); y(i) = log(y(i)); 
      case 3 
         x(i) = 1 / x(i); y(i) = log(y(i)); 
      case 4 
         x(i) = exp(-x(i)); y(i) = log(y(i)); 
      case 5 
         y(i) = log(y(i)); 
      case 6 
         x(i) = log(x(i)) / log(10); 
      case 7  
   end 
end 
disp '  ***** 计算代换变量的累加与平方和 *****' 
c = 0; d = 0; xc = 0; yc = 0; xy = 0; 
for i = 1 : n 
   c = c + x(i); d = d + y(i); 
   xc = xc + x(i) ^2; yc = yc + y(i) ^2; 
   xy = xy + x(i) * y(i); 
end 
cxy = [c d xc yc xy]; 
disp '     C-X        C-Y     C-X^2      C-Y^2   C-(XY)^2' 
disp (cxy) 
dx = xc - c ^2 / n; 
dy = yc - d ^2 / n; 
dc = xy - c * d / n; 
lxy = [dx dy dc]; 
disp '     Lxx        Lyy       Lxy' 
disp (lxy) 
disp '  ***** 计算拟合系数和常数 *****' 
b = dc / dx; 
fprintf (1,'      拟合系数 b  = %3.6f \n',b) 
a = (d - b * c) / n; 
fprintf (1,'      代换常数 a  = %3.6f \n',a) 
switch lx 
   case 1 
      fprintf (1,'      拟合常数 a  = %3.6f \n',a) 
   case 2 
      g = exp(a); 
      fprintf (1,'      拟合常数 a  = %3.6f \n',g)     
   case 3 
      g = exp(a); 
      fprintf (1,'      拟合常数 a  = %3.6f \n',g)           
   case 4 
      fprintf (1,'      拟合常数 a  = %3.6f \n',a) 
   case 5 
      g = exp(a); 
      fprintf (1,'      拟合常数 a  = %3.6f \n',g)           
   case 6 
      fprintf (1,'      拟合常数 a  = %3.6f \n',a) 
   case 7 
      fprintf (1,'      拟合常数 a  = %3.6f \n',a) 
end 
disp '  ***** 拟合效果和精度检验 *****' 
r = dc / sqrt(dx * dy); 
fprintf (1,'      相关系数 r  = %3.6f \n',r) 
d = 0; q = 0; yc = 0; 
for i = 1 : n 
   ys(i) = a + b * x(i); 
   switch lx 
      case 1 
         ys(i) = 1 / ys(i); 
      case 2 
         ys(i) = exp(ys(i));  
      case 3 
         ys(i) = exp(ys(i));  
      case 4 
         ys(i) = 1 / ys(i); 
      case 5  
         ys(i) = exp(ys(i)); 
      otherwise          
   end 
   s(i) = (ya(i) - ys(i)) ^ 2; 
   d = d + ya(i); 
   q = q + s(i); 
   yc = yc + ya(i) ^2; 
end 
dy = yc - d * d / n; 
sgm = sqrt(q / (n - 2)); 
rr = 1 - q / dy; 
fprintf (1,'    剩余平方和 Q  = %3.6f \n',q) 
fprintf (1,'      标准误差 s  = %3.6f \n',sgm) 
fprintf (1,'      相关指数 R2 = %3.6f \n',rr) 
switch lx 
   case 7 
      f = (dy - q) * (n - 2) / q; 
      fprintf (1,'        统计量 F  = %3.6f \n',f) 
   otherwise 
end 
% 计算插值点函数值,根据选择的曲线类型绘制拟合曲线(蓝色,实线) 
xx = x1 : 1 : xn; 
switch lx 
   case 1 
      y0 = x0 / (a * x0 + b );        
      yy = xx ./ (a .* xx + b ); 
   case 2 
      y0 = g * x0 ^ b;       
      yy = g * xx .^ b;       
   case 3 
      y0 = g * exp(b / x0); 
      yy = g * exp(b ./ xx); 
   case 4 
      y0 = 1 / (a + b * exp(-x0)); 
      yy = 1 ./ (a + b .* exp(-xx)); 
   case 5 
      y0 = g * exp(b * x0); 
      yy = g * exp(b .* xx); 
   case 6 
      y0 = a + b * log(x0) / log(10); 
      yy = a + b .* log(xx) / log(10); 
   case 7 
      y0 = a + b * x0; 
      yy = a + b .* xx; 
end 
fprintf (1,'  插值点函数值 y0 = %3.4f \n',y0) 
plot(xx, yy,'b-') 
% 图形标题-拟合曲线类型和公式(字符黑体,公式斜体) 
switch lx 
   case 1 
      title('\bf 实验数据离散点图  /  双曲线 \it y=x/(ax+b)') 
   case 2 
      title('\bf 实验数据离散点图  /  幂函数曲线 \it y=ax^b') 
   case 3 
      title('\bf 实验数据离散点图  /  负指数曲线 \it y=ae^{b/x}') 
   case 4 
      title('\bf 实验数据离散点图  /  S型曲线 \it y=1/(a+be^{-x})') 
   case 5 
      title('\bf 实验数据离散点图  /  指数曲线 \it y=ae^{bx}') 
   case 6 
      title('\bf 实验数据离散点图  /  对数曲线 \it y=a+bln(x)') 
   case 7 
      title('\bf 实验数据离散点图  /  直线 \it y=a+bx') 
end 
</pre>
<script src="/inc/gg_read2.js"></script><BR>
<script src="http://s117.cnzz.com/stat.php?id=1236358&web_id=1236358&show=pic" language="JavaScript" charset="gb2312"></script>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -