偏微分方程算法之二阶双曲型方程显式差分法

news2025/1/12 9:58:37

目录

一、研究目标

二、理论推导

2.1 三层显格式建立

2.2 三层显格式改进

三、算例实现

3.1 一阶显格式

3.2 二阶显格式


一、研究目标

        介绍完一阶双曲型偏微分方程的几种差分格式后,我们继续探讨二阶方程的差分格式。这里以非齐次二阶双曲型偏微分方程的初边值问题为研究对象(无法用解析解求解其精确解):

\left\{\begin{matrix} \frac{\partial^{2}u(x,t)}{\partial t^{2}}-a^{2}\frac{\partial^{2}u(x,t)}{\partial x^{2}}=f(x,t),0<x<1,0<t\leqslant T,\\ u(x,0)=\varphi(x),\frac{\partial u}{\partial t}(x,0)=\Psi(x),0\leqslant x\leqslant 1,\space\space(1)\\ u(0,t)=\alpha(t),u(1,t)=\beta(t),0<t\leqslant T \end{matrix}\right.

公式(1)中u表示一个与时间t和位置x有关的待求波函数,\varphi(x),\Psi(x),\alpha(t),\beta(t)及方程右端项函数f(x,t)都是已知函数,a,T是非零常数。公式(1)的第2式是初始条件,第3式是边界条件。若f(x,t)\equiv 0,则对应的初边值问题与一阶对流方程有类似属性,只不过公式(1)有两条特征线,精确解u(x,t)在点(x,t)处的值的依赖区域为[x-|a|t,x+|a|t],从而也有相应的CFL条件。

二、理论推导

2.1 三层显格式建立

        差分步骤与之前的抛物型方程差分中介绍的相同。

        第一步:网格剖分。对矩形求解域0\leqslant x\leqslant 1,0\leqslant t\leqslant T进行等距剖分,即

x_{j}=jh(j=0,1,\cdot\cdot\cdot,m),t_{k}=k\tau(k=0,1,\cdot\cdot\cdot,n)

空间步长为h=1/m,\tau=T/n

        第二步:弱化原方程。将原来的连续方程离散到网格节点上成立,得到离散方程:

\left\{\begin{matrix} \frac{\partial^{2}u}{\partial t^{2}}|_{(x_{j},t_{k})}-a^{2}\frac{\partial ^{2}u}{\partial x^{2}}|_{(x_{j},t_{k})}=f(x_{j},t_{k}),0<j<m,0<k\leqslant n,\\ u(x_{j},t_{0})=\varphi(x_{j}),\frac{\partial u}{\partial t}(x_{j},t_{0})=\Psi(x_{j}),0\leqslant j\leqslant m,\space\space(2)\\ u(x_{0},t_{k})=\alpha(t_{k}),u(x_{m},t_{k})=\beta(t_{k}),1\leqslant k\leqslant n \end{matrix}\right.

        第三步:偏导数用差商近似。用二阶中心差商近似公式(2)中的二阶偏导数,即

\frac{\partial^{2}u}{\partial t^{2}}|_{(x_{j},t_{k})}\approx \frac{u(x_{j},t_{k+1})-2u(x_{j},t_{k})+u(x_{j},t_{k-1})}{\tau^{2}}

\frac{\partial^{2}u}{\partial x^{2}}|_{(x_{j},t_{k})}\approx \frac{u(x_{j+1},t_{k})-2u(x_{j},t_{k})+u(x_{j-1},t_{k})}{h^{2}}

        初始条件中的一阶偏导数用向前差商近似,即

\frac{\partial u}{\partial t}|_{(x_{j},t_{0})}\approx\frac{u(x_{j},t_{1})-u(x_{j},t_{0})}{\tau}

        将上面三式代入公式(2)中,用数值解代替精确解并忽略高阶项,可得差分格式为

\left\{\begin{matrix} \frac{u^{k+1}_{j}-2u^{k}_{j}+u^{k-1}_{j}}{\tau^{2}}-a^{2}\frac{u^{k}_{j+1}-2u^{k}_{j}+u^{k}_{j-1}}{h^{2}}=f(x_{j},t_{k}),1\leqslant j\leqslant m-1,1\leqslant k\leqslant n-1,\\ u^{0}_{j}=\varphi(x_{j}),\frac{u^{1}_{j}-u^{0}_{j}}{\tau}=\Psi(x_{j}),0\leqslant j\leqslant m,\space\space(3)\\ u^{k}_{0}=\alpha(t_{k}),u^{k}_{m}=\beta(t_{k}),1\leqslant k\leqslant n \end{matrix}\right.

        记r=a^{2}\tau^{2}/h^{2},可以将公式(3)整理为公式(4)所示的三层显格式:

\left\{\begin{matrix} u^{k+1}_{j}=ru^{k}_{j-1}+2(1-r)u^{k}_{j}+ru^{k}_{j+1}-u^{k-1}_{j}+\tau^{2}f(x_{j},t_{k}),1\leqslant j\leqslant m-1,1\leqslant k\geqslant n-1,\\ u^{0}_{j}=\varphi(x_{j}),\frac{u^{1}_{j}-u^{0}_{j}}{\tau}=\Psi(x_{j}),0\leqslant j\leqslant m,\space\space(4)\\ u^{k}_{0}=\alpha(t_{k}),u^{k}_{m}=\beta(t_{k}),1\leqslant k\leqslant n \end{matrix}\right.

公式(4)的局部截断误差为O(\tau+h^{2})

2.2 三层显格式改进

        事实上,公式(4)的精度比较低,原因是在对初始条件进行一阶偏导数近似时,采用的是精度较低的向前差商。为了提高精度,可以考虑利用中心差商对时间的一阶偏导数进行近似,即

\frac{\partial u}{\partial t}|_{(x_{j},t_{0})}\approx\frac{u(x_{j},t_{1})-u(x_{j},t_{-1})}{2\tau}

        得到公式(1)的数值格式为

\left\{\begin{matrix} u^{k+1}_{j}=ru^{k}_{j-1}+2(1-r)u^{k}_{j}+ru^{k}_{j+1}-u^{k-1}_{j}+\tau^{2}f(x_{j},t_{k}),1\leqslant j\leqslant m-1,1\leqslant k\geqslant n-1,\\ u^{0}_{j}=\varphi(x_{j}),0\leqslant j\leqslant m,u^{1}_{j}=u^{-1}_{j}+2\tau \Psi(x_{j})=\Psi(x_{j}),1\leqslant j\leqslant m-1,\space\space(5)\\ u^{k}_{0}=\alpha(t_{k}),u^{k}_{m}=\beta(t_{k}),1\leqslant k\leqslant n \end{matrix}\right.

        这样处理引入虚拟越界点u^{-1}_{j},如果认为公式(5)中第1式对k=0也成立,即

u^{1}_{j}=ru^{0}_{j-1}+2(1-r)u^{0}_{j}+ru^{k}_{j+1}-u^{-1}_{j}+\tau^{2}f(x_{j},t_{k}),1\leqslant j\leqslant m-1

得出    u^{-1}_{j}=ru^{0}_{j-1}+2(1-r)u^{0}_{j}+ru^{0}_{j+1}+\tau^{2}f(x_{j},t_{0}),1\leqslant j\leqslant m-1

于是可以在公式(5)第2式中消去u^{-1}_{j},得到

u^{1}_{j}=(ru^{0}_{j-1}+2(1-r)u^{0}_{j}+ru^{0}_{j+1}+\tau^{2}f(x_{j},t_{0})+2\tau\Psi(x_{j}))/2,1\leqslant j\leqslant m-1

从而得到改进的三层格式:

\left\{\begin{matrix} u^{k+1}_{j}=ru^{k}_{j-1}+2(1-r)u^{k}_{j}+ru^{k}_{j+1}-u^{k-1}_{j}+\tau^{2}f(x_{j},t_{k}),1\leqslant j\leqslant m-1,1\leqslant k\leqslant n-1,\\ u^{0}_{j}=\varphi(x_{j}),0\leqslant i\leqslant m,\\ u^{1}_{j}=(ru^{0}_{j-1}+2(1-r)u^{0}_{j}+ru^{0}_{j+1}+\tau^{2}f(x_{j},t_{0})+2\tau\Psi(x_{j}))/2,1\leqslant j\leqslant m-1,\\ u^{k}_{0}=\alpha(t_{k}),u^{k}_{m}=\beta(t_{k}),1\leqslant k\leqslant n \end{matrix}\right.

        该格式的局部截断误差为O(\tau^{2}+h^{2})

三、算例实现

        计算双曲型方程初边值问题:

\left\{\begin{matrix} \frac{\partial^{2}u(x,t)}{\partial t^{2}}-\frac{\partial^{2}u(x,t)}{\partial x^{2}}=2e^{t}sinx,0<x<\pi,0<t\leqslant 1,\\ u(x,0)=sinx,\frac{\partial u}{\partial t}(x,0)=sinx,0\leqslant x\leqslant \pi,\\ u(0,t)=0,u(\pi,t)=0,0<t\leqslant 1 \end{matrix}\right.

已知其精确解为u(x,t)=e^{t}sinx。分别取步长为\tau_{1}=1/50,h_{1}=\pi/100\tau_{1}=1/100,h_{1}=\pi/200,给出节点(\frac{i\pi}{10},\frac{4}{5}),i=1,\cdot\cdot\cdot,9处的数值解和误差。

3.1 一阶显格式

代码如下:


#include <cmath>
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
        int i,j,k,m,n;
        double a,h,tau,r,pi;
        double *x,*t,**u;
        double phi(double x);
        double psi(double x);
        double alpha(double t);
        double beta(double t);
        double f(double x, double t);
        double exact(double x, double t);

        pi=3.14159265359;
        m=100;
        n=50;
        a=1.0;
        h=pi/m;
        tau=1.0/n;
        r=a*tau/h;
        r=r*r;

        x=(double *)malloc(sizeof(double)*(m+1));
        for(i=0;i<=m;i++)
                x[i]=i*h;

        t=(double *)malloc(sizeof(double)*(n+1));
        for(k=0;k<=n;k++)
                t[k]=k*tau;

        u=(double **)malloc(sizeof(double *)*(m+1));
        for(i=0;i<=m;i++)
                u[i]=(double *)malloc(sizeof(double)*(n+1));

        for(i=0;i<=m;i++)
        {
                u[i][0]=phi(x[i]);
                u[i][1]=phi(x[i])+tau*psi(x[i]);
        }

        for(k=1;k<=n;k++)
        {
                u[0][k]=alpha(t[k]);
                u[m][k]=beta(t[k]);
        }

        for(k=1;k<n;k++)
        {
                for(i=1;i<m;i++)
                        u[i][k+1]=r*u[i-1][k]+2*(1-r)*u[i][k]+r*u[i+1][k]-u[i][k-1]+tau*tau*f(x[i],t[k]);
        }

        k=4*n/5;
        j=m/10;
        for(i=j;i<m;i=i+j)
                printf("(x,t)=(%.2f,%.2f),y=%f,error=%.4e.\n",x[i],t[k],u[i][k],fabs(u[i][k]-exact(x[i],t[k])));

        free(x);free(t)
        for(j=0;j<=m;j++)
            free(u[j]);
        free(u);

        return 0;
}


double phi(double x)
{
        return sin(x);
}
double psi(double x)
{
        return sin(x);
}
double alpha(double t)
{
        return 0.0;
}
double beta(double t)
{
        return 0.0;
}
double f(double x, double t)
{
        return 2*sin(x)*exp(t);
}
double exact(double x, double t)
{
        return sin(x)*exp(t);

}

 当\tau_{1}=1/50,h_{1}=\pi/100时,计算结果如下:

(x,t)=(0.31,0.80),y=0.685504,error=2.2257e-03.
(x,t)=(0.63,0.80),y=1.303907,error=4.2336e-03.
(x,t)=(0.94,0.80),y=1.794673,error=5.8271e-03.
(x,t)=(1.26,0.80),y=2.109765,error=6.8501e-03.
(x,t)=(1.57,0.80),y=2.218338,error=7.2027e-03.
(x,t)=(1.88,0.80),y=2.109765,error=6.8501e-03.
(x,t)=(2.20,0.80),y=1.794673,error=5.8271e-03.
(x,t)=(2.51,0.80),y=1.303907,error=4.2336e-03.
(x,t)=(2.83,0.80),y=0.685504,error=2.2257e-03.

\tau_{1}=1/100,h_{1}=\pi/200时,计算结果如下:

(x,t)=(0.31,0.80),y=0.686619,error=1.1106e-03.
(x,t)=(0.63,0.80),y=1.306028,error=2.1124e-03.
(x,t)=(0.94,0.80),y=1.797593,error=2.9075e-03.
(x,t)=(1.26,0.80),y=2.113197,error=3.4180e-03.
(x,t)=(1.57,0.80),y=2.221947,error=3.5939e-03.
(x,t)=(1.88,0.80),y=2.113197,error=3.4180e-03.
(x,t)=(2.20,0.80),y=1.797593,error=2.9075e-03.
(x,t)=(2.51,0.80),y=1.306028,error=2.1124e-03.
(x,t)=(2.83,0.80),y=0.686619,error=1.1106e-03.

        计算结果显示是算法是一阶收敛,且精确解及数值解都关于x=\pi/2对称。 

3.2 二阶显格式

代码如下:


#include <cmath>
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
        int i,j,k,m,n;
        double a,h,tau,r,pi;
        double *x,*t,**u;
        double phi(double x);
        double psi(double x);
        double alpha(double t);
        double beta(double t);
        double f(double x, double t);
        double exact(double x, double t);

        pi=3.14159265359;
        m=100;
        n=50;
        a=1.0;
        h=pi/m;
        tau=1.0/n;
        r=a*tau/h;
        r=r*r;
        printf("r=%.4f.\n",r);

        x=(double *)malloc(sizeof(double)*(m+1));
        for(i=0;i<=m;i++)
                x[i]=i*h;

        t=(double *)malloc(sizeof(double)*(n+1));
        for(k=0;k<=n;k++)
                t[k]=k*tau;

        u=(double **)malloc(sizeof(double *)*(m+1));
        for(i=0;i<=m;i++)
                u[i]=(double *)malloc(sizeof(double)*(n+1));

        for(i=0;i<=m;i++)
                u[i][0]=phi(x[i]);

        for(k=1;k<=n;k++)
        {
                u[0][k]=alpha(t[k]);
                u[m][k]=beta(t[k]);
        }

        for(i=1;i<m;i++)
                u[i][1]=(r*u[i-1][0]+2*(1-r)*u[i][0]+r*u[i+1][0]+tau*tau*f(x[i],t[0])+2*tau*psi(x[i]))/2.0;

        for(k=1;k<n;k++)
        {
                for(i=1;i<m;i++)
                        u[i][k+1]=r*u[i-1][k]+2*(1-r)*u[i][k]+r*u[i+1][k]-u[i][k-1]+tau*tau*f(x[i],t[k]);
        }

        k=4*n/5;
        j=m/10;
        for(i=j;i<m;i=i+j)
                printf("(x,t)=(%.2f,%.2f),y=%f,error=%.4e.\n",x[i],t[k],u[i][k],fabs(u[i][k]-exact(x[i],t[k])));

        free(x);free(t);
        for(j=0;j<=m;j++)
                free(u[j]);
        free(u);

        return 0;
}


double phi(double x)
{
        return sin(x);
}
double psi(double x)
{
        return sin(x);
}
double alpha(double t)
{
        return 0.0;
}
double beta(double t)
{
        return 0.0;
}
double f(double x, double t)
{
        return 2*sin(x)*exp(t);
}
double exact(double x, double t)
{
        return sin(x)*exp(t);

}

 当\tau_{1}=1/50,h_{1}=\pi/100时,计算结果如下:

r=0.4053.
(x,t)=(0.31,0.80),y=0.687721,error=8.6480e-06.
(x,t)=(0.63,0.80),y=1.308124,error=1.6450e-05.
(x,t)=(0.94,0.80),y=1.800478,error=2.2641e-05.
(x,t)=(1.26,0.80),y=2.116589,error=2.6616e-05.
(x,t)=(1.57,0.80),y=2.225513,error=2.7986e-05.
(x,t)=(1.88,0.80),y=2.116589,error=2.6616e-05.
(x,t)=(2.20,0.80),y=1.800478,error=2.2641e-05.
(x,t)=(2.51,0.80),y=1.308124,error=1.6450e-05.
(x,t)=(2.83,0.80),y=0.687721,error=8.6480e-06.

\tau_{1}=1/100,h_{1}=\pi/200时,计算结果如下:

r=0.4053.
(x,t)=(0.31,0.80),y=0.687728,error=2.1615e-06.
(x,t)=(0.63,0.80),y=1.308136,error=4.1115e-06.
(x,t)=(0.94,0.80),y=1.800495,error=5.6590e-06.
(x,t)=(1.26,0.80),y=2.116609,error=6.6526e-06.
(x,t)=(1.57,0.80),y=2.225534,error=6.9949e-06.
(x,t)=(1.88,0.80),y=2.116609,error=6.6526e-06.
(x,t)=(2.20,0.80),y=1.800495,error=5.6590e-06.
(x,t)=(2.51,0.80),y=1.308136,error=4.1115e-06.
(x,t)=(2.83,0.80),y=0.687728,error=2.1615e-06.

          计算结果显示是算法是二阶收敛,且精确解及数值解都关于x=\pi/2对称。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android11 SystemUI clock plugin 插件入门

插件的编写 参照ExamplePlugin&#xff0c;需要系统签名。 需要先编译以下模块得到jar&#xff0c;引用在项目中。 m SystemUIPluginLibcom.android.systemui.permission.PLUGIN PluginManager.addPluginListener SystemUI 是如何发现 clock plugin 的&#xff1f; Syste…

【管理咨询宝藏78】MBB大型城投集团核心能力建设分析报告

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏78】MBB大型城投集团核心能力建设分析报告 【格式】PDF版本 【关键词】战略规划、商业分析、管理咨询、MBB顶级咨询公司 【强烈推荐】 这是一套…

【服务器部署篇】Linux下Redis安装

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0c;产…

【数据结构】单链表经典算法题的巧妙解题思路

目录 题目 1.移除链表元素 2.反转链表 3.链表的中间节点 4.合并两个有序链表 5.环形链表的约瑟夫问题 解析 题目1&#xff1a;创建新链表 题目2&#xff1a;巧用三个指针 题目3&#xff1a;快慢指针 题目4&#xff1a;哨兵位节点 题目5&#xff1a;环形链表 介绍完了…

cdh cm界面HDFS爆红:不良 : 该 DataNode 当前有 1 个卷故障。 临界阈值:任意。(Linux磁盘修复)

一、表现 1.cm界面 报错卷故障 检查该节点&#xff0c;发现存储大小和其他节点不一致&#xff0c;少了一块物理磁盘 2.查看该磁盘 目录无法访问 dmesg检查发现错误 dmesg | grep error二、解决办法 移除挂载 umount /data10 #可以移除挂载盘&#xff0c;或者移除挂载目…

【爬虫】多线程爬取图片

多线程爬虫 多线程爬虫概述1.1 多线程的优势1.2 多线程的挑战 设计多线程爬虫1.1 项目设计1.2 项目流程1.3注意事项 总结 多线程爬虫概述 在当今信息爆炸的时代&#xff0c;网络爬虫&#xff08;Web Scraper&#xff09;已成为获取和分析网络数据的重要工具。而多线程爬虫&…

Codigger GT模块:GUI融合Terminal,重塑开发体验

在信息技术日新月异的今天&#xff0c;开发者与计算机系统进行交互的界面&#xff0c;其体验的优化与升级显得尤为关键。Codigger G&T正是应这一需求而生&#xff0c;它巧妙地将现代图形用户界面&#xff08;GUI&#xff09;的优势融入传统的Terminal中&#xff0c;为开发者…

算法训练营day16

一、二叉树的最大深度 递归解法 后序遍历(DFS) class Solution {public int maxDepth(TreeNode root) {if (root null) return 0;return Math.max(maxDepth(root.left), maxDepth(root.right)) 1;} }算法解析&#xff1a; 终止条件&#xff1a; 当 root 为空&#xff0c;…

openAI tts Java文本转语音完整前后端代码 html

Java后端代码 maven 仓库&#xff1a; <!--openAI 请求工具--> <dependency><groupId>com.unfbx</groupId><artifactId>chatgpt-java</artifactId><version>1.1.5</version> </dependency>maven 仓库官方 tts 使用案例…

Odoo讨论+聊天模块:一体化内部协作平台,赋能高效沟通与业务流程协作

Odoo讨论聊天模块&#xff1a;一体化内部协作平台&#xff0c;赋能高效沟通与业务流程协作 Odoo 讨论模块是一个集成了即时通讯、文件共享、业务关联、权限控制等功能于一体的内部协作工具&#xff0c;允许用户通过跨模块的聊天窗口或通过专用的“讨论”面板互相发送消息、分享…

利用redis和fastapi实现本地与平台策略进行交互

redis简介: 在pandas一文有详细使用方法(一文教会pandas-CSDN博客)&#xff0c;具体可视化软件有redisstudio等。它是一个由 Salvatore Sanfilippo 写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支…

Redis: 在项目中的应用

文章目录 一、Redis的共享session应用二、分布式缓存1、缓存2、缓存一致性问题解决方案&#xff08;缓存更新策略&#xff09;&#xff08;1&#xff09;作用&#xff08;2&#xff09;三种策略&#xff08;3&#xff09;主动更新策略&#xff08;数据库、缓存不一致解决方案&a…

DFS专题:电话号码的字母组合

DFS专题&#xff1a;电话号码的字母组合 题目链接: 17.电话号码的字母组合 参考题解&#xff1a; 代码随想录 题目描述 代码思路 将数字到字母的映射用字符串数组表示出来。然后利用回溯算法&#xff0c;解决n个for循环的问题&#xff0c;枚举出每一种符合要求的情况。 代…

C++友元命名空间数据类型内联重载缺省

1.友元 &#xff08;1&#xff09;全局函数作为友元 利用友元这个语法&#xff0c;我们可在函数里访问类里面定义的私有成员&#xff1b; 先定义了一个默认构造函数对类里面的成员进行初始化&#xff1b;goodgay是一个全局的函数&#xff0c;我们想要直接打印私有成员变量就…

订单到期关闭如何实现

在电商、支付等系统中&#xff0c;一般都是先创建订单&#xff08;支付单&#xff09;&#xff0c;再给用户一定的时间进行支付&#xff0c;如果没有按时支付的话&#xff0c;就需要把之前的订单&#xff08;支付单&#xff09;取消掉。这种类似的场景有很多&#xff0c;还有比…

仓库管理系统哪个好用?看仓储出入库系统如何智慧管理库存-亿发

企业中的仓库扮演着至关重要的角色&#xff0c;负责产品的存储和分发。作为物流的重要节点&#xff0c;仓库不仅需要确保产品安全存放&#xff0c;还要保证及时的配送服务。同时&#xff0c;仓库还需要完成货物信息记录、库存管理和品质管理等任务。因此&#xff0c;仓储管理的…

DFS专题:二叉树的最大深度

力扣题目&#xff1a;二叉树的最大深度 题目链接: 104.二叉树的最大深度 题目描述 代码思路 设置两个变量&#xff0c;max来记录最大值&#xff0c;sum来记录路径的节点数量。利用dfs对二叉树进行搜索&#xff0c;遇到节点&#xff0c;则sum1&#xff1b;遇到叶子节点&#…

数据恢复如何工作?电脑最佳数据恢复软件分析

数据丢失是数字世界不合适的部分&#xff0c;迟早会影响许多计算机用户。 如果您不小心 #delete 了重要的 #file&#xff0c;可能很难找回它并造成不必要的压力。 点击发推文 幸运的是&#xff0c;即使您没有备份已删除的文件&#xff0c;PC的数据恢复软件也可以帮助您恢复已…

昂科烧录器支持Nuvoton新唐科技的低功耗微控制器M482SIDAE

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中Nuvoton新唐科技的低功耗微控制器M482SIDAE已经被昂科的通用烧录平台AP8000所支持。 M482SIDAE以Arm Cortex-M4F为核心&#xff0c;是带有DSP指令集的高效能低功耗微控制器。其…

WPF Extended.Wpf.Toolkit 加载界面

1、NuGet 中安装 Extended.Wpf.Toolkit 。 2、在MainWindow.xaml中添加xmlns:tk"http://schemas.xceed.com/wpf/xaml/toolkit" 。 MainWindow.xaml 代码如下。 <Window x:Class"WPF_Extended_Wpf_Toolkit_Loading.MainWindow" xmlns"ht…