精华内容
下载资源
问答
  • AR模型阶数确定及模型参数确定函数

    热门讨论 2012-11-25 16:34:05
    AR模型阶数定阶方法,采用matlab编程实现AR模型的一种定阶准则
  • 1755: 阶数 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 54 Solved: 6 [Submit][Status][Web Board] Description 满足a^x≡1(mod n)的最小正整数x称为a模n的阶。 现给出两个正整数,求x。 ...

    1755: 阶数

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 54  Solved: 6
    [Submit][Status][Web Board]

    Description

    满足a^x≡1(mod n)的最小正整数x称为a模n的阶。

    现给出两个正整数,求x。

    Input

    第一行输入k,表示有k组数据

    之后k行每行两个数a,n(2<=a,n<=10^9)

    Output

    对于每组输入,用一行输出x的值,若不存在输出-1

    Sample Input

    2
    2 3
    2 4

    Sample Output

    2
    -1
    题意:中文题不解释

    思路:欧拉定理:

    设gcd(a,m)=1,必有正整数x,使得a^x=1(mod m),且设满足等式的最小正整数为x0,必满足x0|phi(m).注意m>1.

    否则如果gcd(a,m)!=1,则方程a^x=1(mod m)没有解。

    所以我们先判断a和n是不是互质,如果不是直接输出-1

    互质一定有解,我们求出n的欧拉函数然后枚举因子即可。

    有一个坑的地方卡了好久,就是因为你枚举出来的因子最小为2

    所以需要特判一下a%n==1

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    #define LL long long
    LL e[1000008],t;
    LL pow_mod(LL a,LL n,LL mod)
    {
        LL ans=1;
        while(n)
        {
            if(n&1) ans=ans*a%mod;
            a=a*a%mod;
            n>>=1;
        }
        return ans;
    }
    LL gcd(LL a,LL b)
    {
        return b?gcd(b,a%b):a;
    }
    LL euler_phi(LL n)//欧拉函数
    {
        LL ans=n,i;
        for(i=2; i*i<=n; i++)
        {
            if(n%i==0)
            {
                ans=ans/i*(i-1);
                while(n%i==0)n=n/i;
            }
        }
        if(n>1)ans=ans/n*(n-1);
        return ans;
    }
    void finds(LL n)
    {
        e[t++]=n;
        for(LL i=2; i*i<=n; i++)
        {
            if(n%i==0)
            {
                if(i*i==n)
                    e[t++]=i;
                else
                {
                    e[t++]=i;
                    e[t++]=n/i;
                }
            }
        }
    }
    int main()
    {
        int T;
        LL a,n;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%lld %lld",&a,&n);
            if(a%n==1)
            {
                printf("1\n");
                continue;
            }
            if(gcd(a,n)!=1)
            {
                printf("-1\n");
                continue;
            }
            LL m=euler_phi(n);
            t=0;
            finds(m);
            sort(e,e+t);
            LL ans=-1;
            for(LL i=0; i<t; i++)
            {
                if(pow_mod(a,e[i],n)==1)
                {
                    ans=e[i];
                    break;
                }
            }
            printf("%lld\n",ans);
        }
        return 0;
    }
    



    展开全文
  • 【MATLAB】数据拟合_阶数的确定

    千次阅读 2019-08-23 22:45:53
    这种方法是最常用的确定方法,一般情况下,我们拟合函数的目的,就是为了调用,所以在用函数拟合之前会用matlab曲线拟合工具箱进行拟合函数阶数的确定,由其确定拟合的阶数,然后我们用这个函数命令在其他地方进行...

    多项式阶数N的确定

    我们在拟合数据的过程中,事先不知道要拟合的数据是几阶的,那我们如何确定给定的拟合阶数N最终为多少呢?

    阶数确定方法一:

    这种方法是最常用的确定方法,一般情况下,我们拟合函数的目的,就是为了调用,所以在用函数拟合之前会用matlab曲线拟合工具箱进行拟合函数阶数的确定,由其确定拟合的阶数,然后我们用这个函数命令在其他地方进行十分方便地调用,这是最常用的做法。我们往往拟合的是多个同类型的数据,所以确定好一组样本的次数之后,就可以对其他数据用同样的N进行拟合。

    使用方法:

    Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。 假设要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0。 1、在命令行输入数据:>> x=0:0.01:1;ya=(x.^2-3*x+5).*exp(-5*x).*sin(x);>> cftool 2、启动曲线拟合工具箱 》cftool 3、进入曲线拟合工具箱界面“Curve Fitting tool” (1)点击“Data”按钮,弹出“Data”窗口; (2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set name”,然后点击“Createdata set”按钮,退出“Data”窗口,返回工具箱界面cf,这时会自动画出数据集的曲线图; (3)点击“Fitting”按钮,弹出“Fitting”窗口; (4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Dataset”下拉菜单选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型

    阶数确定方法二:

    这种方法方法可以取代用cftool进行判断的过程,具体实现代码如下:

    for i=1:5

        y2=polyfit(x,y,i);

        Y=polyval(y2,x);%计算拟合函数在x处的值。

        if sum((Y-y).^2)<0.1    

            c=i  

            break;

        end

    end

    >> for i=1:5
    
        y2=polyfit(x,ya,i);
    
        Y=polyval(y2,x);%计算拟合函数在x处的值。
    
        if sum((Y-ya).^2)<0.1
    
            c=i  
    
            break;
    
        end
    
    end
    
    c =
    
         4
    

    假设我们的误差平方和精度范围为0.1,那么通过以上程序,我们可以看到用4阶函数拟合,就可以达到精度要求。在多项式进行拟合的时候这个值我们在程序执行的过程中就直接可以调用。

    matlab曲线拟合结果调用及显示

     

    1. 大家可能有疑问,我们拟合完函数之后得到的是拟合多项式的系数,我们应该如何调用?如何查看我们拟合的多项式是什么形式呢?下面我们就接着上面的内容进行介绍。

    2. 拟合多项式的显示:

      在MATLAB主窗口中输入

      syms x f(x)

      f(x)=poly2sym(y2,x)

      我们会看到输出如下结果:

      f(x) =

       

      4*x^3 + 3*x^2 + (5822273280258613*x)/1267650600228229401496703205376 + 2

      这就是我们拟合出来的多项式。

      这里我们看到一次项的系数并不是0,这里5822273280258613/1267650600228229401496703205376=4.5930e-15,这个数量级我们完全可以忽略,认为是0。

    3. 拟合结果的调用:

      在MATLAB主窗口中输入如下命令:

      TEST=polyval(y2,x)

      我们可以看到如下结果,如下图。

      函数polyval()的第一个参数为多项式的系数,第二个参数为要计算的自变量值。可以是向量或者矩阵。

     

    参考:百度百科

    https://jingyan.baidu.com/article/9c69d48f409c6013c9024e8c.html

    展开全文
  • cost看成0阶

    cost看成0阶

    展开全文
  • 本题要求实现一个函数,计算阶数为n,系数为a[0]...a[n]的多项式f(x)=∑​i=0​n​​(a[i]×x​i​​)在x点的值。 函数接口定义: double f( int n, double a[], double x ); 其中n是多项式的阶数,a[]中存储...

    本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑​i=0​n​​(a[i]×x​i​​) 在x点的值。

    函数接口定义:

    double f( int n, double a[], double x );
    

    其中n是多项式的阶数,a[]中存储系数,x是给定点。函数须返回多项式f(x)的值。

    裁判测试程序样例:

    #include <stdio.h>
    
    #define MAXN 10
    
    double f( int n, double a[], double x );
    
    int main()
    {
        int n, i;
        double a[MAXN], x;
    	
        scanf("%d %lf", &n, &x);
        for ( i=0; i<=n; i++ )
            scanf(“%lf”, &a[i]);
        printf("%.1f\n", f(n, a, x));
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例:

    2 1.1
    1 2.5 -38.7
    

    输出样例:

    -43.1

    解题如下:


    首先说一下看到题目大家都能知道的解题思路:

    1.遍历数组,获取每个元素

    2.让每个元素乘以x的特定次幂

    3.相加求和


    在开始写的时候会发现多项式的第一个元素是x的0次幂,因此我单独将第一个元素拿出来判断,

    下面贴一下我第一次写的代码:

    double f(int n,double a[],double x)
    {
        double sum=0.0;//定义总和
        int j;//定义循环变量
        for(j=0; j<=n; j++)
        {
            double m=1.0;//定义m为x的多少次幂,初始值为1
            if(j==0)//当为数组中第一个元素的时候,此时x的阶数为0
            {
                m=1.0;//因此x的0次幂 m=1
            }
            else//当为数组中其他元素的时候
            {
                int i=j;//将j的值赋值给i,因为若直接操作j的话会影响循环变量的值
                while(i>0)
                {
                    m=m*x;//算出x的本次幂值
                    i--;
                }
            }
            sum+=(a[j]*m);//最后求和
        }
        return sum;
    }

    满心欢喜的啥都没多想就提交了,遭受到现实的一击,duang~运行超时。。

     

    不用想也知道,两层循环的问题=。=,因此需要优化到一层循环。。

    下面贴出优化之后的第二次代码:

    double f( int n, double a[], double x )
    {
        double sum=a[0];//直接将总和初始化为a[0]*x^0,也就是a[0]
        int i;
        double m=1;//将m定义在循环之外
    
        //总和初始化之后,就将x的0次幂排除在外了
        for(i=1;i<=n;i++){
            m*=x;//m每次循环之后就可以保存上一次的值
            sum+=a[i]*m;//依次求和相加
        }
        return sum;
    }

    这样再次提交就可以的到15分了=。=

    思路都在代码中注释了,应该很好理解的,有不对的地方还望路过的朋友积极指正=。=

    -----------------------------------------------------------------------------------------------------------

    个人总结:

    在c语言中,数组名作为参数传递后,在函数中不能通过sizeof(数组名)/sizeof(数组类型)来获取数组的长度,因为这只是传递的数组的首地址,可以在传值之前先获取好数组的长度,然后通过参数传递到函数中来=。=(总结这个是因为在这个函数中刚开始还傻傻的获取数组长度,而且还把n直接无视,憨憨。。)

    (因为一直用java,c语言特点都忘了,路过的大佬勿喷哈=。=)

     

     

    展开全文
  • 如何确定插值滤波器的阶数

    千次阅读 2020-11-17 22:39:45
    这次我们再打开resample这个函数,可以看到: 这里的N是10,也就是说,如果是p倍插值,Matlab给出的插值滤波器阶数是2x10xp,也就是4倍插值滤波器对应阶数是80阶。再用firls来设计滤波器,最后再给滤波器加个kaiser...
  • Python 确定多项式拟合/回归的阶数

    千次阅读 2019-07-26 13:23:59
    通过 1至10 阶来拟合对比 均方误差及R评分,可以确定最优的“最大阶数”。 import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import PolynomialFeatures from sklearn.linear_...
  • R语言-对数据框批量生成滞后数据,滞后阶数自己设定
  • 在一些需要用单片机、DSP、ARM等系统中用C语言实现高维滤波器的场合,例如卡尔曼滤波器,我们会经常遇到用C语言求解方阵的逆的情况,当阶数为2阶或者3阶的时候我们可以用公式法直接求解,但是当阶数一旦达到4阶或者4...
  • double f( int n, double a[], double x ){ double sum=0; int test,i;...)//判断x的阶数 x*=x; sum+=a[i]*x; } return sum;}这个代码编译出来的是没有问题,但是运行超时了,观察看来是两个for循环...
  • AR模型的参数及阶数估计的MATLAB代码原创-estimate_AR.m 我附上的是我最近自己编写的R模型的参数及阶数估计,利用的是L-D算法解Y-W方程法,里面有相关注释。对学习随机信号的同学,应该有用。:)
  • 不断的求导,其中1-acosx-bcos2x这一步,当x趋于0时,这个式子趋于1-a-b,我们不能让它为常数,令它趋于0,因为要尽量使阶数高。所以有了一个等式,后面一个等式一样。
  • 现要求输入一个255以内的整数(不要求判断输入的整数),表示杨辉三角形的阶数,格式为%d。输出对应阶数的杨辉三角形,输出格式为%5d,结果参照图1-图5。 提示可以定义容量为255*255的二维数组,然后根据输入的要求...
  • 三、单整阶数判断 library(forecast) ndiffs(nd) 1 四、协整检验 r=lm(data1~data2) re=resid(r) library(urca) h=ur.df(re,type="trend",selectlags="AIC") summary(h) #########################################...
  •  这是计算机图形学样条曲线绘制或数学上插值函数的问题。首先,例如一条直线,两点可以定义一条直线,而直线的定义式可以写为:y=kx+b,可用一次函数表示;即一阶的曲线(直线)由两个点定义。同理又例如:二阶的...
  • 代码中先创建空字典,再让阶数从2到20集合曲线,调用函数得到部分结果如下: max_error = {…14: 2.322139186350796, 15: 2.2966158040362643, 16: 2.0137114508679588, 17: 2.062269553221995, 18: 2....
  • 微分方程的阶数、任意常数个数、特征根个数的关系,以及由解倒求各种类型微分方程的方法:倒推法、行列式法、特解代入法、消C法、综合法。
  • 由传递函数判断模拟滤波器的类型

    千次阅读 2018-02-25 21:39:40
    1、表达式的最高次数就是阶数, 2、分子上有什么就通什么! 举个例子: H(s)=as/(bs+c),分子上有“高次”,所以是高通。 这里的“高次”是这个意思:分母上有s的0次和1次,分子是s的1次,所以是较高的那个,...
  • 判断对象类型 1 传入obj通过原型的tostring属性获取 2 判断obj是不是type类型 3 批量生成类型对象,把有数据类型放进一个数组,遍历数组fns{} fns{} 最终代码
  • Matlab曲线polyfit拟合求参数

    千次阅读 2019-12-14 10:49:21
    一:已知函数阶数 polyfit(x,y,N) x:输入的数组 y:输出的数组 N:函数的阶数 构造X,Y。这里其实就是一阶函数。故意试下3阶: clc; x=1:1:10; y=2*x; coefficient=polyfit(x,y,3) 结果: 从右向左阶数...
  • OpenCV Sobel函数

    千次阅读 2020-01-12 13:30:58
    Sobel函数使用扩展的 Sobel 算子,来计算一阶、二阶、三阶或混合图像差分。 原理 首先,我们来开一下计算机是如何检测边缘的。以灰度图像为例,它的理论基础是这样的,如果出现一个边缘,那么图像的灰度就会有一定的...
  • 因为从名字上判断,只处理勒让德多项式(这些是勒让德方程的解,其中mu=0,或者称为0阶解)我不知道matlab,但是看一下文档,你输入的是计算勒让德函数的结果,达到指定的阶数。在在python中,您所做的似乎是创建一个...
  • EXCEL函数大全

    千次阅读 2018-12-15 10:01:49
    函数 用途 语法 参数 1 一.数据库函数 2 1.DAVERAGE 用途:返回数据库或数据清单中满足指定条件的列中数值的平均值。 语法:DAVERAGE(database,field,criteria) 参数:...
  • 伽玛函数(Gamma函数)C++实现

    千次阅读 2020-08-15 14:28:41
    前几天做项目中的一个算法,需要用到贝塞尔函数(半整阶),网上的代码一般都要收费,索性自己撸了一个,其中涉及伽马函数值求取,下面是我的思路与...//伽马函数(辅助函数,用于求解贝塞尔函数,任意阶数) //x 变量
  • /*爱因斯坦的数学题:长梯问题*/ /*解题思路:由题意,梯子的阶数一定是7的倍数,故可以从0开始,每次循环 把梯子阶数+7进行判断*/ #include int main(){ int step;//记录梯子的阶数 int count=0; for(step=0;;...
  • MATLAB函数

    2019-05-01 18:59:33
    快忘光了MATLAB,把不会的函数存一下 ★matlab中的下标都是从1开始的 ★原文:https://blog.csdn.net/caomin1hao/article/details/78510298 Matlab函数定义格式,用关键字function定义函数 function [输出...
  • 函数的参数传递

    2017-07-03 22:43:56
    首先说一下值传递,这是一种仅仅传递变量的内容的传递方式,在子函数里不能对上一级函数中对应的变量产生影响,换句话说,子函数中接收到的变量实际上是上一级函数中变量的副本。该传递方式过于简单,不贴代码。 注...
  • matlab绘图、计算基本函数(一)

    千次阅读 2016-09-22 21:59:21
    本来MATLAB就不会,这两天做了一个竞赛和一个项目有关的东西,一边百度一边写,都是泪,总结一下基础的画图函数,不能给忘了!!!用的代码片段都是写好的,不改了 1.从Excel读取要处理的数据 可使用xlsread函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,398
精华内容 2,159
关键字:

判断函数阶数