导数边界

Posted 胡冬冬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导数边界相关的知识,希望对你有一定的参考价值。

 

 

 

 

 

 

 

 

 1 tic;
 2 clear
 3 clc
 4 N=8;
 5 M=2*N;
 6 h1=2/M;
 7 h2=1/N;
 8 x=0:h1:2;
 9 y=0:h2:1;
10 fun=inline(\'exp(x)*sin(pi*y)\',\'x\',\'y\');
11 f=inline(\'(pi^2-1)*exp(x)*sin(pi*y)\',\'x\',\'y\');
12 lamda1=inline(\'1\',\'y\');
13 lamda2=inline(\'2*y\',\'y\');
14 lamda3=inline(\'2*x\',\'x\');
15 lamda4=inline(\'x^2\',\'x\');
16 kesai1=inline(\'0\',\'y\');
17 kesai2=inline(\'exp(2)*(1+2*y)*sin(pi*y)\',\'y\');
18 kesai3=inline(\'-pi*exp(x)\',\'x\');
19 kesai4=inline(\'-pi*exp(x)\',\'x\');
20 numerical=zeros(M+1,N+1);
21 Numerical=numerical;
22 error=eye(M+1,N+1);
23 while norm(error,inf) >= 1e-5
24 for j=1:N+1
25     for i=1:M+1
26         if i==1 & j==1    
27             Numerical(i,j)=(f(x(i),y(j))+2/h1^2*numerical(i+1,j)+2/h2^2*numerical(i,j+1)+2/h1*kesai1(y(j))+2/h2*kesai3(x(i)))...
28                 /(2/h1^2+2/h2^2+2/h1*lamda1(y(j))+2/h2*lamda3(x(i)));%U(0,0)
29         elseif i==M+1 & j==1
30              Numerical(i,j)=(f(x(i),y(j))+2/h1^2*numerical(i-1,j)+2/h2^2*numerical(i,j+1)+2/h1*kesai2(y(j))+2/h2*kesai3(x(i)))...
31                 /(2/h1^2+2/h2^2+2/h1*lamda2(y(j))+2/h2*lamda3(x(i)));%U(m,0)
32         elseif i==1 & j==N+1
33             Numerical(i,j)=(f(x(i),y(j))+2/h1^2*numerical(i+1,j)+2/h2^2*numerical(i,j-1)+2/h1*kesai1(y(j))+2/h2*kesai4(x(i)))...
34                 /(2/h1^2+2/h2^2+2/h1*lamda1(y(j))+2/h2*lamda4(x(i)));%U(0,n)
35         elseif i==M+1 & j==N+1
36             Numerical(i,j)=(f(x(i),y(j))+2/h1^2*numerical(i-1,j)+2/h2^2*numerical(i,j-1)+2/h1*kesai2(y(j))+2/h2*kesai4(x(i)))...
37                 /(2/h1^2+2/h2^2+2/h1*lamda2(y(j))+2/h2*lamda4(x(i)));%U(m,n)
38         elseif i==1 & j>=2 & j<=N  %  0j
39             Numerical(i,j)=(f(x(i),y(j))+2/h1^2*numerical(i+1,j)+1/h2^2*numerical(i,j-1)+1/h2^2*numerical(i,j+1)+2/h1*kesai1(y(j)))...
40                 /(2/h1^2+2/h2^2+2/h1*lamda1(y(j)));
41         elseif j==1 & i>=2 & i<=M  % i0
42              Numerical(i,j)=(f(x(i),y(j))+1/h1^2*numerical(i-1,j)+1/h1^2*numerical(i+1,j)+2/h2^2*numerical(i,j+1)+2/h2*kesai3(x(i)))...
43                 /(2/h1^2+2/h2^2+2/h2*lamda3(x(i)));
44         elseif i==M+1 & j>=2 & j<=N  %  mj
45              Numerical(i,j)=(f(x(i),y(j))+2/h1^2*numerical(i-1,j)+1/h2^2*numerical(i,j-1)+1/h2^2*numerical(i,j+1)+2/h1*kesai2(y(j)))...
46                 /(2/h1^2+2/h2^2+2/h1*lamda2(y(j)));
47         elseif j==N+1 & i>=2 & i<=M  %  in
48              Numerical(i,j)=(f(x(i),y(j))+1/h1^2*numerical(i-1,j)+1/h1^2*numerical(i+1,j)+2/h2^2*numerical(i,j-1)+2/h2*kesai4(x(i)))...
49                 /(2/h1^2+2/h2^2+2/h2*lamda4(x(i)));
50         else
51              Numerical(i,j)=(f(x(i),y(j))+1/h1^2*numerical(i-1,j)+1/h2^2*numerical(i,j-1)+1/h1^2*numerical(i+1,j)+1/h2^2*numerical(i,j+1))...
52                  /(2/h1^2+2/h2^2);
53         end            
54     end
55 end
56 error=Numerical-numerical;
57    numerical=Numerical;
58 end
59 for i=1:length(x)
60     for j=1:length(y)
61    Accurate(i,j)=fun(x(i),y(j));
62     end
63 end
64 Error=Accurate\'-Numerical\';
65 [X,Y]=meshgrid(x,y);
66 subplot(1,3,1)
67 mesh(X,Y,Accurate\');
68 xlabel(\'x\');ylabel(\'y\');zlabel(\'Accurate\');
69 grid on
70 subplot(1,3,2)
71 mesh(X,Y,Numerical\');
72 xlabel(\'x\');ylabel(\'y\');zlabel(\'Numerical\');
73 grid on
74 subplot(1,3,3)
75 mesh(X,Y,Error);
76 xlabel(\'x\');ylabel(\'y\');zlabel(\'error\');
77 grid on
78 toc;

 

以上是关于导数边界的主要内容,如果未能解决你的问题,请参考以下文章

为啥将拆分为 wav 文件的旋律转换为拆分的 mp3 会在片段边界处产生不好的声音?

Java 求解划分字母区间

边缘检测

opencv学习笔记之cvSobel 函数解析

Unity中timeline出现脚本错误怎么解决

KMeans聚类并绘制聚类后的决策边界