计算方法 c++代码

环境 :Windows 10 + Dev-C++ 5.11

Lagrange 插值方法

Lagrange 插值多项式: 在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fer(i,a,b) for(int i=a;i<b;i++)
signed main(){
    cout<<"拉格朗日插值法,请输入插值点个数n:";
    int n;cin>>n;
    printf("请输入%d个插值点x值(等距):",n);
    double fx[n],x[n];
    fer(i,0,n){
        cin>>x[i];
    }//{24 26 28 30}{1.888175 1.918645 1.947294 1.961009};
    printf("请输入%d个插值点f(x)值:",n);
    fer(i,0,n){
        cin>>fx[i];
    }
    int m;
    printf("请输入待求点个数m:");
    cin>>m; 
    double targetx[m];//{25 27 29};
    printf("请输入%d个待求点x值:",m);
    fer(i,0,m){
        cin>>targetx[i];
    }
    double phi[n];//系数
    for(int i=0;i<m;i+=1){
        fer(j,0,n)phi[j]=1;//初始化
        fer(j,0,n){
            fer(k,0,n){
                if(j!=k){
                    phi[j]*=(targetx[i]-x[k]);
                    phi[j]/=(x[j]-x[k]);
                }
            }
        }
        double res=0;  
        fer(j,0,n){
            res+=phi[j]*fx[j];
            //cout<<i<<" "<<phi[i]<<" "<<data[i]<<" "<<res<<endl;
        }
        cout<<"x="<<targetx[i]<<" , L(x)="<<res<<endl;
    }
    return 0;
}

牛顿插值方法

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fer(i,a,b) for(int i=a;i<b;i++)
signed main(){
    cout<<"牛顿插值法,请输入插值点个数n:";
    int n;cin>>n;
    double data[n];//={0.41075 0.57815 0.69675 0.88811 1.02652};
    double a[n];//={0.4 0.55 0.65 0.8 0.9};
    printf("请输入%d个插值点x值:",n);
    fer(i,0,n){
        cin>>a[i];
    }
    printf("请输入%d个插值点f(x)值:",n);
    fer(i,0,n){
        cin>>data[i];
    }
    double dp[n][n+1];
    fer(i,0,n){
        dp[i][0]=a[i];
        dp[i][1]=data[i];
    }
    fer(j,2,n+1){
        fer(i,j-1,n){
            dp[i][j]=(dp[i][j-1]-dp[i-1][j-1])/(dp[i][0]-dp[i-j+1][0]);
        }
    }
    cout<<"差商结果如下:"<<endl;
    cout<<"x        f(x)     ";
    fer(i,0,n-1)cout<<i+1<<"阶差商  ";
    cout<<endl;
    fer(i,0,n){
        fer(j,0,i+2){
            cout<<left<<setw(9)<<dp[i][j]<<" ";
        }
        cout<<endl;
    }
    cout<<"请输入待求点个数m:";
    int m;cin>>m;
    double targetx[m];
    printf("请输入%d个待求点x值:",m);//0.895
    fer(i,0,m){
        cin>>targetx[i];
    }
    
    for(int x=0;x<m;x++){
        double res=0;
        double now;
        fer(i,0,n){
            now=dp[i][i+1];
            fer(j,0,i){
                now*=(targetx[x]-a[j]);
            }
            res+=now;
        }
        cout<<"x="<<targetx[x]<<" , p(x)="<<res<<endl;
    }
    return 0;
}

Newton-Cotes 方法

计算以下积分值:
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fer(i,a,b) for(int i=a;i<b;i++)
#define E  2.7182818284590452354
double trapezoid(double down,double up,double fx[]){//积分下限、上限、插值点 
    //梯形求积公式
    double res=(up-down)/2;
    res*=(fx[0]+fx[1]);
    return res;
}
double simpson(double down,double up,double fx[]){
    double res=(up-down)/6;
    res*=(fx[0]+4*fx[1]+fx[2]);
    return res;
}
double cotes(double down,double up,double fx[]){
    double res=(up-down)/90;
    res*=(7*fx[0]+32*fx[1]+12*fx[2]+32*fx[3]+7*fx[4]);
    return res;
}
double fx1(double x){
    double res=4-sin(x)*sin(x);
    res=sqrt(res);
    return res;
}
double fx2(double x){
    if(x==0)return 1;
    double res=sin(x)/x;
    return res;
}
double fx3(double x){
    double res=pow(E,x);
    res/=(4+x*x);
    return res;
}
double fx4(double x){
    double res=log(1+x);
    res/=(1+x*x);
    return res;
}
signed main(){
    cout<<"牛顿-柯特斯公式"<<endl;
    cout<<"积分1:f(x)=sqrt(4-sin(x)^2)"<<endl;
    cout<<"请输入积分下限和上限(小数输入):";
    double a,b;cin>>a>>b;
    cout<<"当求积节点个数=2时,使用梯形求积公式,积分结果为:";
    double trapex[2],trapefx[2];
    trapex[0]=a;trapex[1]=b;
    fer(i,0,2){
        trapefx[i]=fx1(trapex[i]);
    }
    double res=trapezoid(a,b,trapefx);
    cout<<setprecision(16)<<res<<endl;
    cout<<"当求积节点个数=3时,使用辛普森求积公式,积分结果为:";
    double simpsonx[3],simpsonfx[3];
    simpsonx[0]=a;simpsonx[1]=(a+b)/2;simpsonx[3]=b;
    fer(i,0,3){
        simpsonfx[i]=fx1(simpsonx[i]);
    }
    res=simpson(a,b,simpsonfx);
    cout<<setprecision(16)<<res<<endl;
    cout<<"当求积节点个数=5时,使用柯特斯求积公式,积分结果为:";
    double cotesx[5],cotesfx[5];
    cotesx[0]=a;cotesx[1]=(a+b)/4;cotesx[2]=(a+b)/2;cotesx[3]=(a+b)/4*3;cotesx[4]=b;
    fer(i,0,5){
        cotesfx[i]=fx1(cotesx[i]);
    }
    res=cotes(a,b,cotesfx);
    cout<<setprecision(16)<<res<<endl<<endl;
    
    cout<<"积分2:f(x)=sinx/x"<<endl;
    cout<<"请输入积分下限和上限(小数输入):";
    cin>>a>>b;
    cout<<"当求积节点个数=2时,使用梯形求积公式,积分结果为:";
    trapex[0]=a;trapex[1]=b;
    fer(i,0,2){
        trapefx[i]=fx2(trapex[i]);
    }
    res=trapezoid(a,b,trapefx);
    cout<<setprecision(16)<<res<<endl;
    cout<<"当求积节点个数=3时,使用辛普森求积公式,积分结果为:";
    simpsonx[0]=a;simpsonx[1]=(a+b)/2;simpsonx[3]=b;
    fer(i,0,3){
        simpsonfx[i]=fx2(simpsonx[i]);
    }
    res=simpson(a,b,simpsonfx);
    cout<<setprecision(16)<<res<<endl;
    cout<<"当求积节点个数=5时,使用柯特斯求积公式,积分结果为:";
    cotesx[0]=a;cotesx[1]=(a+b)/4;cotesx[2]=(a+b)/2;cotesx[3]=(a+b)/4*3;cotesx[4]=b;s
    fer(i,0,5){
        cotesfx[i]=fx2(cotesx[i]);
    }
    res=cotes(a,b,cotesfx);
    cout<<setprecision(16)<<res<<endl<<endl;
    
    cout<<"积分3:f(x)=e^x/(4+x^2)"<<endl;
    cout<<"请输入积分下限和上限(小数输入):";
    cin>>a>>b;
    cout<<"当求积节点个数=2时,使用梯形求积公式,积分结果为:";
    trapex[0]=a;trapex[1]=b;
    fer(i,0,2){
        trapefx[i]=fx3(trapex[i]);
    }
    res=trapezoid(a,b,trapefx);
    cout<<setprecision(16)<<res<<endl;
    cout<<"当求积节点个数=3时,使用辛普森求积公式,积分结果为:";
    simpsonx[0]=a;simpsonx[1]=(a+b)/2;simpsonx[3]=b;
    fer(i,0,3){
        simpsonfx[i]=fx3(simpsonx[i]);
    }
    res=simpson(a,b,simpsonfx);
    cout<<setprecision(16)<<res<<endl;
    cout<<"当求积节点个数=5时,使用柯特斯求积公式,积分结果为:";
    cotesx[0]=a;cotesx[1]=(a+b)/4;cotesx[2]=(a+b)/2;cotesx[3]=(a+b)/4*3;cotesx[4]=b;
    fer(i,0,5){
        cotesfx[i]=fx3(cotesx[i]);
    }
    res=cotes(a,b,cotesfx);
    cout<<setprecision(16)<<res<<endl<<endl;
    
    cout<<"积分4:f(x)=ln(1+x)/(1+x^2)"<<endl;
    cout<<"请输入积分下限和上限(小数输入):";
    cin>>a>>b;
    cout<<"当求积节点个数=2时,使用梯形求积公式,积分结果为:";
    trapex[0]=a;trapex[1]=b;
    fer(i,0,2){
        trapefx[i]=fx4(trapex[i]);
    }
    res=trapezoid(a,b,trapefx);
    cout<<setprecision(16)<<res<<endl;
    cout<<"当求积节点个数=3时,使用辛普森求积公式,积分结果为:";
    simpsonx[0]=a;simpsonx[1]=(a+b)/2;simpsonx[3]=b;
    fer(i,0,3){
        simpsonfx[i]=fx4(simpsonx[i]);
    }
    res=simpson(a,b,simpsonfx);
    cout<<setprecision(16)<<res<<endl;
    cout<<"当求积节点个数=5时,使用柯特斯求积公式,积分结果为:";
    cotesx[0]=a;cotesx[1]=(a+b)/4;cotesx[2]=(a+b)/2;cotesx[3]=(a+b)/4*3;cotesx[4]=b;
    fer(i,0,5){
        cotesfx[i]=fx4(cotesx[i]);
    }
    res=cotes(a,b,cotesfx);
    cout<<setprecision(16)<<res<<endl<<endl;
    return 0;
}

求非线性方程根的牛顿法

用牛顿迭代法求 xe^x − 1 = 0 的根,迭代初始值为 x0 = 0.5。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fer(i,a,b) for(int i=a;i<b;i++)
signed main(){
    cout<<"牛顿迭代法,所求方程为:xe^x-1=0"<<endl;
    cout<<"请输入初值:";
    double x;cin>>x;
    cout<<"请输入最大迭代次数:";
    int n;cin>>n;
    cout<<"请输入精度要求:";
    double epsilon;cin>>epsilon;
    bool flag=0;
    for(int i=0;i<n;i++){
        double f=x*exp(x)-1;
        double df=exp(x)+x*exp(x);
        double x1=x-f/df;
        cout<<"第"<<i+1<<"次迭代,x="<<x1<<endl;
        if(abs(x1-x)<epsilon){
            cout<<"精度已达要求"<<endl;
            flag=1;
            break;
        }
        x=x1;
    }
    if(flag==0)cout<<"迭代次数已达上限"<<endl;
    return 0;
}

高斯-赛德尔迭代法解线性方程组

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fer(i,a,b) for(int i=a;i<b;i++)

signed main(){
    cout<<"Gauss-Seidel迭代法解线性方程组"<<endl;
    cout<<"请输入矩阵维数n:";
    int n;cin>>n;
    double a[n][n],b[n];
    cout<<"请输入增广矩阵("<<n<<"x"<<n+1<<"):";
    fer(i,0,n){
        fer(j,0,n){
            cin>>a[i][j];
        }
        cin>>b[i];
    }
    cout<<"请输入迭代初值向量:";
    double x[n];
    fer(i,0,n)cin>>x[i];
    
    cout<<"请输入精度要求:";
    double epsilon;cin>>epsilon;
    cout<<"请输入最大迭代次数:";
    int m;cin>>m;
    
    double phi[n][n];
    fer(i,0,n){
        fer(j,0,n){
            if(j==i)phi[i][j]=0;
            else{
                phi[i][j]=-a[i][j]/a[i][i];
            }
        }
    }
    // 10 -1 -2 7.2  -1 10 -2 8.3  -1 -1 5 4.2
    bool flag=0;
    double x1[n];
    fer(k,0,m){
        fer(i,0,n){
            x1[i]=b[i]/a[i][i];
            fer(j,0,n){
                x1[i]+=phi[i][j]*x[j];
            }
            if(abs(x1[i]-x[i])<epsilon){
                
                flag=1;
                break;
            }
            x[i]=x1[i];
        }
        cout<<"第"<<k+1<<"次迭代,x=[";
        fer(i,0,n){
            cout<<setprecision(10)<<x[i];
if(i!=n-1)cout<<"  ";
        }
        cout<<"]"<<endl;
        if(flag){
            cout<<"精度已达要求"<<endl;
            break;
        }
    }
    if(flag==0)cout<<"迭代次数已达上限"<<endl;
    return 0;
}

高斯消元法求解线性方程组

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fer(i,a,b) for(int i=a;i<b;i++)
#define E  2.7182818284590452354
signed main(){
    cout<<"高斯消元法"<<endl;
    cout<<"请输入矩阵维数n:";
    int n;cin>>n;
    double a[n][n],b[n];
    cout<<"请输入增广矩阵("<<n<<"x"<<n+1<<"):";
    fer(i,0,n){
        fer(j,0,n){
            cin>>a[i][j];
        }
        cin>>b[i];
    }   // 10 -1 -2 7.2  -1 10 -2 8.3  -1 -1 5 4.2
    double phi;
    fer(k,0,n-1){//用于消元的行 
        fer(i,k+1,n){//被消元的行 
            phi=-a[i][k]/a[k][k];//消元系数 
            fer(j,k,n){
                a[i][j]+=phi*a[k][j];
            }
            b[i]+=phi*b[k];
        }
    }
    double x[n];
    for(int i=n-1;i>=0;i--){ 
        x[i]=b[i];
        fer(j,i+1,n){
            x[i]-=a[i][j]*x[j];
        }
        x[i]/=a[i][i];
    }
    cout<<"x=[";
    fer(i,0,n){
        cout<<x[i]; 
        if(i!=n-1)cout<<" ";
    }
    cout<<"]"<<endl;
    return 0;
}

Doolittle 分解法求解线性方程组

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fer(i,a,b) for(int i=a;i<b;i++)

signed main(){
    cout<<"Doolittle分解法解线性方程组"<<endl;
    cout<<"请输入矩阵维数n:";
    int n;cin>>n;
    double a[n][n],b[n];
    cout<<"请输入增广矩阵("<<n<<"x"<<n+1<<"):";
    fer(i,0,n){
        fer(j,0,n){
            cin>>a[i][j];
        }
        cin>>b[i];
    }
    double l[n][n],u[n][n];
    fer(i,0,n){
        fer(j,0,i)u[i][j]=0;
        fer(j,i,n){
            u[i][j]=a[i][j];
            fer(k,0,i){
                u[i][j]-=l[i][k]*u[k][j];
            }
        }
        fer(j,0,i)l[j][i]=0;
        l[i][i]=1;
        fer(j,i+1,n){//计算L,j是行标 
            l[j][i]=a[j][i];
            fer(k,0,i){
                l[j][i]-=l[j][k]*u[k][i];
            }
            l[j][i]/=u[i][i];
        }
        
    }
    cout<<"L="<<endl;
    fer(i,0,n){
        fer(j,0,n)cout<<setw(10)<<l[i][j]<<" ";
        cout<<endl;
    }
    cout<<"U="<<endl;
    fer(i,0,n){
        fer(j,0,n)cout<<setw(10)<<u[i][j]<<" ";
        cout<<endl;
    }
    double y[n];
    fer(i,0,n){//Ly=b,求y 
        y[i]=b[i];
        fer(j,0,i)y[i]-=l[i][j]*y[j];
    }
    double x[n];
    for(int i=n-1;i>=0;i--){
        x[i]=y[i];
        fer(j,i+1,n){
            x[i]-=u[i][j]*x[j];
        }
        x[i]/=u[i][i];
    }
    cout<<"x=[";
    fer(i,0,n){
            cout<<setprecision(10)<<x[i];
            if(i!=n-1)cout<<"  ";
        }
    cout<<"]"<<endl;
    // 10 -1 -2 7.2  -1 10 -2 8.3  -1 -1 5 4.2
    
    return 0;
}

欧拉法求解常微分方程

使用常微分方程例子如下:
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fer(i,a,b) for(int i=a;i<b;i++)
double f(double x,double y){
    return 3*x-2*y*y-12;
}
signed main(){
    cout<<"求解常微分方程,方程:y'=3x-2y^2-12"<<endl; 
    double x,y,h;
    cout<<"请输入初值x,f(x):";
    cin>>x>>y;
    cout<<"请输入步长h:";
    cin>>h;
    cout<<"请输入x上限:";
    double n;cin>>n;
    int k=n/h; 
    cout<<"欧拉法:"<<endl;
    double x1=x,y1=y;
    cout<<"f("<<x1<<")="<<y1<<endl;
    fer(i,0,k){
        double fxy=f(x1,y1);
        x1+=h;
        y1=y1+h*fxy;
        cout<<"f("<<x1<<")="<<y1<<endl;
    }
    cout<<endl<<"改进的欧拉法:"<<endl; 
    x1=x;
    y1=y;
    cout<<"f("<<x1<<")="<<y1<<endl;
    fer(i,0,k){
        double forcasty=y1+h*f(x1,y1);
        y1=y1+h/2.0*(f(x1,y1)+f(x1+h,forcasty));
        x1+=h;
        cout<<"f("<<x1<<")="<<y1<<endl;
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/203179.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

绘制折扇-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第11讲。 绘制折扇&#xf…

[ffmpeg] aac 音频编码

aac 介绍 aac 简单说就是音频的一种压缩编码器&#xff0c;相同音质下压缩比 mp3好&#xff0c;目前比较常用。 aac 编码支持的格式 aac 支持的 sample_fmts: 8 aac 支持的 samplerates: 96000 88200 64000 48000 44100 32000 24000 22050 16000 12000 11025 8000 7350 通…

学会XPath,轻松抓取网页数据

一、定义 XPath&#xff08;XML Path Language&#xff09;是一种用于在 XML 文档中定位和选择节点的语言。XPath的选择功能非常强大&#xff0c;可以通过简单的路径选择语法&#xff0c;选取文档中的任意节点或节点集。学会XPath&#xff0c;可以轻松抓取网页数据&#xff0c…

8个最流行的Revit插件【2023-2024】

NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 Revit 已取代 AutoCAD 成为全球行业标准软件。 随着设计复杂性的增加&#xff0c;近年来插件变得更加必要。 热…

在Linux本地部署开源自托管导航页配置服务Dashy并远程访问

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起&#xff0c;形成自己的导航…

浏览器如何读取本地Excel表格

浏览器可以读取Excel表格数据吗&#xff1f; 答案是否定的&#xff0c;目前主流浏览器都无法打开本地Excel文档。 答案也是肯定的&#xff0c;这就来看看具体实现方法&#xff01;&#xff01;&#xff01; 首先准备一个Excel表格文件 保存在D:\\temp\测试表.xls…

人工智能(pytorch)搭建模型21-基于pytorch搭建卷积神经网络VoVNetV2模型,并利用简单数据进行快速训练

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能(pytorch)搭建模型21-基于pytorch搭建卷积神经网络VoVNetV2模型&#xff0c;并利用简单数据进行快速训练。VoVNetV2模型是计算机视觉领域的一个重要研究成果&#xff0c;它采用了Voice of Visual Residual&…

高精度工业RFID识别系统的实际应用

工业RFID识别系统的应用范围很广&#xff0c;在生产制造、物流仓储等诸多行业都有应用。但是在实际中&#xff0c;根据应用场景的不同&#xff0c;会选用不同特性的工业识别系统。尤其是企业生产管理等环节&#xff0c;对于识别系统的读写精度要求更高。 高精度工业RFID识别系统…

组装业生产ERP有哪些功能?能帮助企业解决什么问题

不同的组装业务有不同的流程&#xff0c;关联业务环节各不相同&#xff0c;其中物料批次跟踪、订单领料计算、成品生产入库、班组工时负荷评估、原材料采购报价、仓库动态数据反馈等环节的管理工作比较繁琐。 有些组装生产企业采用传统的管理模式&#xff0c;在相关业务数据实…

看看京东的接口优化技巧,确实很优雅!!

大家好&#xff0c;最近看到京东云的一位大佬分享的接口优化方案&#xff0c;感觉挺不错的&#xff0c;拿来即用。建议收藏一波或者整理到自己的笔记本中&#xff0c;随时查阅&#xff01; 下面是正文。 一、背景 针对老项目&#xff0c;去年做了许多降本增效的事情&#xf…

Redis 通用命令和数据类型

get和set get和set两个命令是最基本也是最常用的命令&#xff0c;主要用于操作字符串类型的数据。 1.SET 命令: SET 命令用于设置指定 key 的值。如果 key 已经持有其他值&#xff0c;SET 就覆写旧值&#xff0c;无视类型。具体的命令格式如下&#xff1a; SET key value例如…

使用Jetty编写RESTful接口

一、依赖 <!--Jetty服务器的核心依赖项&#xff0c;用于创建和管理服务器。--><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>9.4.43.v20210629</version></dependency…

【Vulnhub 靶场】【CEREAL: 1】【困难】【20210529】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/cereal-1,703/ 靶场下载&#xff1a;https://download.vulnhub.com/cereal/Cereal.ova 靶场难度&#xff1a;困难 发布日期&#xff1a;2021年5月29日 文件大小&#xff1a;1.1 GB 靶场作者&#xff1a;Thomas…

写 SVG 动画必看!SVG系列文章2-常见标签

1、坐标定位 对于所有元素&#xff0c;SVG 使用的坐标系统或者说网格系统&#xff0c;和 Canvas 用的差不多&#xff08;所有计算机绘图都差不多&#xff09;。这种坐标系统是&#xff1a;以页面的左上角为 (0,0) 坐标点&#xff0c;坐标以像素为单位&#xff0c;x 轴正方向是…

Alignment of HMM, CTC and RNN-T,对齐方式详解——语音信号处理学习(三)(选修二)

参考文献&#xff1a; Speech Recognition (option) - Alignment of HMM, CTC and RNN-T哔哩哔哩bilibili 2020 年 3月 新番 李宏毅 人类语言处理 独家笔记 Alignment - 7 - 知乎 (zhihu.com) 本次省略所有引用论文 目录 一、E2E 模型和 CTC、RNN-T 的区别 E2E 模型的思路 C…

九要素微气象仪-气象百科

随着科技的发展&#xff0c;人们对天气的预测和掌控能力越来越强。在这个领域&#xff0c;九要素微气象仪以其精准、快速、便携的特点&#xff0c;成为了气象预测的佼佼者。这款仪器不仅可以预测风向、风速、温度、湿度、气压等九大要素&#xff0c;还可以实时监测环境温湿度、…

Spring Security OAuth2.0认证授权

1.基本概念 1.1.什么是认证 系统为什么要认证? 认证是为了保护系统的隐私数据与资源,用户的身份合法方可访问该系统的资源。 认证 :用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝…

kettle入门教程

一、概述 1.什么是kettle Kettle是一款开源的ETL(Extract-Transform-Load)工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;绿色无需安装&#xff0c;数据抽取高效稳定。 2.kettle工程存储方式 &#xff08;1&#xff09;以XML形式存储 …

Python实现学生信息管理系统(详解版)

Python实现学生信息管理系统-详解版 个人简介实验名称&#xff1a;学生信息管理系统系统功能实验步骤详讲添加入住学生信息删除学生的住宿信息修改学生的住宿信息查询学生的住宿信息显示所有学生住宿信息显示所有请假学生的信息 运行截图展示1.主界面2.添加新的入住学生信息3.显…

VUE本地idea启动

安装yarn&#xff08;也可以用npm&#xff09; 问题&#xff1a;yarn : 无法加载文件 C:\Users\xx/yarn.ps1&#xff0c;因为在此系统上禁止运行脚本 解决办法&#xff1a;管理员身份运行【 PowerShell】&#xff0c;然后执行【Set-ExecutionPolicy RemoteSigned】&#xff0c…
最新文章