拟合曲线

拟合幅度-频率曲线

x=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40];

%测量值
I0=[817.8 820.9 824.1 829.4 835.8 844 854.5 867.2 882.8 902 925.5 956.2 992.6 1037.7 1093.3 1160.7 1239.7 1323.5 1395.5 1428.4 1401.7 1318 1206 1095.6 1003 931.3 877.9 839.2 811 790.3 775 764 756 749.5 745 741.4 738.7 736.5 735 733.6];
Q0=[1205.6 1175.8 1146 1116 1084.8 1053.3 1020.9 988 954.7 920.9 886.6 855 825.2 801.8 792 807.2 862.8 982.2 1183.5 1457 1749.7 1985 2121.3 2163.2 2141.2 2087.2 2019.9 1951 1885.3 1825 1771 1722.8 1679 1640.6 1605.7 1574.6 1546 1520.2 1496.5 1474.7];

%理想值
frq=[1.00E+06  1.98E+06  2.95E+06  3.93E+06 4.90E+06 6.07E+06 7.05E+06 8.02E+06 9.00E+06 1.02E+07 1.11E+07 1.21E+07 1.31E+07 1.41E+07 1.50E+07 1.60E+07 1.70E+07 1.80E+07 1.91E+07 2.01E+07 2.07E+07 2.11E+07 2.21E+07 2.30E+07 2.40E+07 2.50E+07 2.60E+07 2.71E+07 2.81E+07 2.91E+07 3.01E+07 3.10E+07 3.20E+07 3.30E+07 3.40E+07 3.51E+07 3.61E+07 3.71E+07 3.81E+07 3.90E+07];
pha=[88.12 87.00 85.48 83.89 82.59 81.10 79.95 78.74 77.34 75.46 73.58 71.39 68.79 65.48 61.35 56.06 49.05 39.75 24.96 9.91 0.32 -5.98 -20.47 -32.28 -41.39 -48.26 -53.49 -58.26 -61.33 -63.81 -65.85 -67.56 -69.01 -70.26 -71.35 -72.48 -73.32 -74.08 -74.76 -75.38];
db=[-35.83 -29.82 -26.29 -23.75 -21.73 -19.72 -18.22 -16.84 -15.53 -14.00 -12.74 -11.48 -10.18 -8.84 -7.45 -6.00 -4.52 -3.07 -1.59 -0.83 -0.69 -0.73 -1.24 -2.12 -3.16 -4.20 -5.20 -6.29 -7.11 -7.87 -8.56 -9.19 -9.78 -10.32 -10.83 -11.39 -11.83 -12.24 -12.63 -13.00];
syms u1 u2 

%公式系数
zq=1.237;
zi=0.816;
u1=15.06/10;
u2=15.26/10;

%公式
Q=u1*(Q0./1000-zq);
I=u2*(I0./1000-zi);
am=sqrt(0.5.*( Q.^2+I.^2));%幅度
gain=20.*log10(b);%增益
ph=atand(-Q./I);%相位

n1=10;%拟合阶数
p=polyfit(x,ph,n1)
z1=polyval(ph,x);%拟合的相位
subplot(2,1,1)
plot(x,ph,'o',x,z1,x,pha,'r');%
legend('pha原始数据','pha原始数据拟合','理想曲线')

y=ph-pha;%差值
n2=10;%阶数
p1=polyfit(x,y,n2)
z=polyval(p1,x);%多项式求值
w=z1+z;%补偿后的曲线
subplot(2,1,2)
plot(x,z1,'o',x,z,x,w,'r');
legend('pha原始数据','差值数据拟合曲线','补偿后的曲线')

  

转载于:https://www.cnblogs.com/Sisley/p/6791949.html

### Stata 曲线拟合的代码示例 在 Stata 中进行曲线拟合时,通常可以使用 `scatter` 命令绘制散点图,并结合 `lfit` 或其他非线性拟合命令(如 `qfit` 或 `lowess`)来添加拟合曲线[^1]。以下是一个完整的代码示例,展示如何在散点图中同时绘制一条线性拟合曲线和一条二次拟合曲线: ```stata sysuse auto, clear scatter mpg weight || lfit mpg weight || qfit mpg weight ``` 上述代码中: - `scatter mpg weight` 绘制了变量 `mpg` 和 `weight` 的散点图。 - `lfit mpg weight` 添加了一条线性拟合曲线。 - `qfit mpg weight` 添加了一条二次拟合曲线。 如果需要进行更复杂的非线性拟合,可以考虑使用 `nl` 命令。例如,假设我们希望拟合一个指数模型 \( y = a \cdot e^{b \cdot x} \),可以使用以下代码: ```stata sysuse auto, clear gen ln_mpg = ln(mpg) nl (ln_mpg = {a} + {b}*weight) predict fitted_values scatter ln_mpg weight || line fitted_values weight, sort ``` 上述代码中: - 首先对 `mpg` 取自然对数以满足指数模型的形式。 - 使用 `nl` 命令拟合模型,并生成预测值。 - 最后通过 `scatter` 和 `line` 命令绘制原始数据点和拟合曲线。 对于多元回归分析中的曲线拟合问题,可以通过引入多项式项或交互项来实现非线性关系的建模[^3]。例如: ```stata sysuse auto, clear gen weight_sq = weight^2 regress mpg weight weight_sq predict fitted_mpg scatter mpg weight || line fitted_mpg weight, sort ``` 上述代码中: - 通过生成 `weight` 的平方项 `weight_sq`,将线性回归扩展为二次回归。 - 使用 `regress` 命令拟合模型,并生成预测值。 - 最后绘制散点图和拟合曲线。 ### 注意事项 在实际应用中,选择合适的拟合方法取决于数据的分布特性和研究目标。线性拟合适用于简单的线性关系,而二次或更高次的多项式拟合则适合描述更复杂的非线性关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值