计算方法/数值分析 期末复习整理

简介: 计算方法/数值分析 期末复习整理

1.多项式计算的秦九韶算法

image.png

计算顺序按表格从上往下,从左往右

0a0 1a1 2a2 {n-1}an1 nan
0x=x0 0b0x0 0b1x0 0bn2x0 {n-1}x_0bn1x0
0b0 1b1 2b2 {n-1}bn1 n=f(x_0)bn=f(x0)

image.png

3 0 -1 1 2
0=2x0=2 6 12 22 46
3 6 11 23 48

2.方程求根的二分法算法描述

伪代码示例:

input a,b//满足f(a)f(b)<0
input 精度要求e
do{
  x=(a+b)/2;
  if (f(a)f(x)<0)
    b=x
  else
    a=x
}while(b-a>e);
output x

真实代码:求一个数的三次方根

#include <iostream>
#include <iomanip>
double n;
using namespace std;
int main() {
    cin >> n;
    double l, r, mid;
    l = -2147483648;
    r =  2147483647;
    while (r - l >= 1e-7) {
        mid = (l + r) / 2;
        if (mid * mid * mid >= n)
            r = mid;
        else l = mid;
    }
    cout << fixed << setprecision(6) << mid;
}

3.方程求根的简单迭代法


image.png

4.线性方程组数值解的高斯消去法

普通的高斯消元法:输入一个包含n 个方程 n 个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。

高斯消元法分两个步骤:1.消元 2.回代。在列主元高斯消元法中,每一次消元都需要交换行,选择

image.png

伪代码描述:

for k=1 to n-1 do
  for i=k+1 to n do
    {
      l=-a[i][k]/a[k][k];
      for j = 1 to n do
        a[i][j]=a[i][j]+l*a[k][j]
      b[i]=b[i]+l*b[k];
    }
for k = n downto 1 do
  {
    s=0;
    for j=k+1 to n do
      s=s+a[k][j]*x[j];
    x[k]=(b[k]-s)/a[k][k];
  }

真实代码:

#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
const double ep=1e-6;
double a[105][105];
int n;
int main(){
    cin>>n;
    for(int i=0;i<n;i++)
        for(int j=0;j<=n;j++)
            cin>>a[i][j];
    int c,r;
    for(c=0,r=0;c<n;c++){
        int t=r;
        for(int i=r;i<n;i++){
            if (fabs(a[i][c])>fabs(a[t][c]))    
                t=i;
        }
        if (fabs(a[t][c])<ep)
            continue;
        for(int i=c;i<=n;i++)
            swap(a[t][i],a[r][i]);
        for(int i=n;i>=c;i--)
            a[r][i]/=a[r][c];
        for(int i=r+1;i<n;i++)
            if (fabs(a[i][c])>ep)
                for(int j=n;j>=c;j--)
                    a[i][j]-=a[r][j]*a[i][c];
        r++;
    }
    if (r<n){
        for(int i=r;i<n;i++)
            if(fabs(a[i][n])>ep){
                puts("No solution");
                return 0;
            }
        puts("Infinite group solutions");
        return 0;
    }
    else{
        for(int i=n-1;i>=0;i--)
            for(int j=i+1;j<=n;j++)
                a[i][n]-=a[j][n]*a[i][j];
        for (int i = 0; i < n; i ++ ) 
            printf("%.2lf\n", a[i][n]);
    }
    return 0;        
}

5.拉格郎日插值多项式与插值余项

image.png


(3)为插值多项式余项。其中,

image.png


6.曲线拟合的最小二乘法多项式拟合方程组

image.png

7.定积分计算的复化辛卜生公式算法描述

image.png

伪代码:

for (i=1;i<=n-1;i++){
    x1=x1+h;
    x2=x2+h;
    y1=y1+f(x1);
    y2=y2+f(x2);
}
S=(f(a)+f(b)+2*y1+4*y2)*h/6
output S

8. 复化求积公式的阶与变步长求积公式稳定性

image.png

该公式p阶收敛

复化梯形:2阶。复化辛卜生:4阶。复化柯特斯:6阶

image.png


复化梯形公式:


image.png

9.数值微分计算的中点公式

image.png

10.一阶常微分方程数值解法梯形公式

image.png

x_i y_i
0 1
0.1 0.9901
0.2 0.96098
0.3 0.9143
0.4 0.8527


目录
相关文章
|
7月前
数字信号处理期末复习——计算小题(二)
数字信号处理期末复习——计算小题(二)
38 0
数字信号处理期末复习——计算小题(二)
|
7月前
|
数据处理 5G
信息论与编码期末复习——计算题+基础汇总(二)
信息论与编码期末复习——计算题+基础汇总(二)
133 0
信息论与编码期末复习——计算题+基础汇总(二)
|
7月前
数字信号处理期末复习——计算大题(一)
数字信号处理期末复习——计算大题(一)
126 0
数字信号处理期末复习——计算大题(一)
|
7月前
通信原理期末复习——计算大题(一)
通信原理期末复习——计算大题(一)
62 0
通信原理期末复习——计算大题(一)
|
7月前
|
网络协议 网络架构
计算机网络期末复习——计算大题(一)
计算机网络期末复习——计算大题(一)
280 0
计算机网络期末复习——计算大题(一)
线性代数 - 期末复习(一)
线性代数 - 期末复习(一)
142 0
|
人工智能
「1」线性代数(期末复习)
行列式是一个数,是一个结果 三阶行列式的计算:主对角线的乘积 全排列与对换 逆序数为奇就为奇排列,逆序数为偶就为偶排列 对换: 定理一:一个排列的任意两个元素对换,排列改变奇偶性(和行列式的行(列)交换,符号要变化) 行列式的定义: 上下三角行列式和对角行列式:它的值就是主对角线的乘积
「1」线性代数(期末复习)
|
vr&ar
线性代数 - 期末复习(二)
线性代数 - 期末复习(二)
110 0
概率与统计 期末复习
概率与统计 期末复习
135 0
概率与统计 期末复习