首页 > 其他分享 >7.7 g(x)=(10a)/(10b+(a-10b)e^(asinx)),取a=1.1,b=0.01,计算x=1,2,...,20时,g(x)对应的函数值,把这样得到的数据作为模拟观测值,记作(xi

7.7 g(x)=(10a)/(10b+(a-10b)e^(asinx)),取a=1.1,b=0.01,计算x=1,2,...,20时,g(x)对应的函数值,把这样得到的数据作为模拟观测值,记作(xi

时间:2024-11-05 21:46:57浏览次数:1  
标签:leastsq plt 函数 fit 10b least values 拟合 squares

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit, leastsq, least_squares
from scipy.constants import e

def g(x, a, b):
return (10 * a) / (10 * b + (a - 10 * b) * np.exp(a * np.sin(x)))

a = 1.1
b = 0.01

x_values = np.arange(1, 21)

y_values = g(x_values, a, b)

for i, (xi, yi) in enumerate(zip(x_values, y_values), start=1):
print(f"({xi}, {yi:.6f})")

popt_curve_fit, pcov_curve_fit = curve_fit(g, x_values, y_values, p0=[a, b])
y_fit_curve_fit = g(x_values, *popt_curve_fit)

def func_leastsq(params, x, y):
return y - g(x, *params)

popt_leastsq = leastsq(func_leastsq, [a, b], args=(x_values, y_values))[0]
y_fit_leastsq = g(x_values, *popt_leastsq)

popt_least_squares = least_squares(func_leastsq, [a, b], args=(x_values, y_values)).x
y_fit_least_squares = g(x_values, *popt_least_squares)

print("\ncurve_fit parameters:", popt_curve_fit)
print("leastsq parameters:", popt_leastsq)
print("least_squares parameters:", popt_least_squares)

plt.figure(figsize=(10, 6))
plt.scatter(x_values, y_values, label='Simulated data', color='red')
plt.plot(x_values, y_fit_curve_fit, label='curve_fit', linestyle='-')
plt.plot(x_values, y_fit_leastsq, label='leastsq', linestyle='--')
plt.plot(x_values, y_fit_least_squares, label='least_squares', linestyle='

标签:leastsq,plt,函数,fit,10b,least,values,拟合,squares
From: https://www.cnblogs.com/howoo0808/p/18528947

相关文章

  • C语言实现一个打印非负整数阶乘的函数
    简单版阶层计算升级版阶层计算(c语言的基本类型不能存储)简单版阶层计算:其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0裁判测试程序样例:#include<stdio.h>intFactorial(constintN);intmain(){intN,NF;s......
  • 常见的激活函数和损失函数
    激活函数1.线性激活函数        •数学表达式:y=x        •优点:简单,易于理解和实现        •缺点:不能处理复杂的数据模式,无法引入非线性2.Sigmoid函数        •数学表达式:        •优点:将值映射到0和1之间,输出具......
  • 【semantic Kernel】如何让其他模型也能在SemanticKernel中调用本地函数
    参考:https://mp.weixin.qq.com/s/swPPTyIJa-2OJcyycBVJNQ代码://接入星火AIvarhttpClient=newHttpClient(newXinghuoOpenAIHttpClientHandler());varbuilder=Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId:"generalv3.5","tHQoTStMXIMXmmFwr......
  • C++——用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个团数,整数
    没注释的源代码#include<iostream>usingnamespacestd;voidsortNumbers(int**arr,intn);intmain(){  intn;  cout<<"enterthenumberofintegers:";  cin>>n;  int**arr=newint*[n];  for(inti=0;i<n;i++)  {......
  • C++中类的三的特性是什么?什么是构造函数和析构函数?它们的作用是什么?
    1)C++中类的三大特性是什么?请简要解释。C++中类的三大特性是封装、继承和多态。一、封装封装是将数据和操作数据的方法封装在类中,对外部隐藏类的内部实现细节。通过将数据成员设为私有(private),并提供公有的(public)成员函数来访问和修改这些数据,从而实现对数据的保护和控......
  • 每天两个知识点 拷贝构造函数和赋值运算符重载的作用&C++模板及其类型
    1)拷贝构造函数和赋值运算符重载的作用拷贝构造函数(CopyConstructor)和赋值运算符重载(AssignmentOperatorOverload)是C++中处理对象复制和赋值的两个重要机制。拷贝构造函数:拷贝构造函数是一个特殊的构造函数,它用于创建一个新对象,并将其初始化为另一个同类型对象的副本。......
  • glibc中_start、__libc_start_main、main、exit、init、finit、rtld_fini这几个函数的
    在glibc和一般的Linux程序执行流程中,以下是这几个函数的包含关系和调用顺序:_start:是程序执行的入口点,通常由编译器自动提供。它负责初始化程序,收集命令行参数以及环境变量,并准备调用 __libc_start_main。__libc_start_main:这是glibc提供的启动例程,由 _start......
  • js 函数 function sum(...args),function sum(args) 什么区别呢
    在JavaScript中,functionsum(...args)和functionsum(args)这两种写法有重要的区别:1.functionsum(...args)这种写法使用了剩余参数(restparameter)语法。...args会将传入函数的所有参数收集到一个数组中,args是这个数组。...args允许函数接收任意数量的参数,并将它们......
  • 复变函数速通(精简版)
    复变函数是数学四大科里面最容易速通的,两三天就可以学完所有的知识,因为基本上都是高数下的迁移但是选择填空题好多小概念容易出错,大家一定要快速学完之后多做几套题才有用本人感觉最美的思维是发现把柯西积分定理、柯西积分公式、高阶导数公式、留数定理统一起来的时候 ......
  • python 实现灰色模型神经网络拟合算法
    灰色模型神经网络拟合算法介绍灰色模型神经网络拟合算法结合了灰色预测模型和神经网络的优势,用于处理样本数据量较少、信息不完全或具有不确定性的系统预测问题。以下是对该算法及其原理的详细介绍:一、灰色预测模型(GrayForecastModel)灰色预测是对既含有已知信息又含有......