Matlab-7:偏微分方程数值解法-李荣华-有限元解导数边界值的常微分(Galerkin方法)
p47.(实习题-李荣华)用线性元求下列边值问题的数值解

tic;
% this method is transform from Galerkin method
%also call it as finit method
%is used for solving two point BVP which is the first and second term.
%this code was writen by HU.D.dong in February 11th
%MATLAB 7.0
clear;
clc;
N=;
h=/N;
X=:h:;
f=inline('(0.5*pi^2)*sin(0.5*pi.*x)');
%以下是右端向量:
for i=:N
fun1=@(x) pi^/.*sin(pi/.*x).*(-(x-X(i))/h);
fun2=@(x) pi^/.*sin(pi/.*x).*((x-X(i-))/h);
f_phi(i-,)=quad(fun1,X(i),X(i+))+quad(fun2,X(i-),X(i));
end
funN=@(x) pi^/.*sin(pi/.*x).*(x-X(N))/h;
f_phi(N)=quad(funN,X(N),X(N+));
%以下是刚度矩阵:
A11=quad(@(x) /h+0.25*pi^*h.*(-*x+*x.^),,);
A12=quad(@(x) -/h+0.25*pi^*h.*(-x).*x,,);
ANN=quad(@(x) /h+0.25*pi^*h*x.^,,);
A=diag([A11*ones(,N-),ANN],)+diag(A12*ones(,N-),)+diag(A12*ones(,N-),-);
Numerical_solution=A\f_phi;
Numerical_solution=[;Numerical_solution];
%Accurate solution on above以下是精确解
%%
for i=:length(X)
Accurate_solution(i,)=sin((pi*X(i))/)/ - cos((pi*X(i))/)/ + exp((pi*X(i))/)*((exp(-(pi*X(i))/)*cos((pi*X(i))/))/ + (exp(-(pi*X(i))/)*sin((pi*X(i))/))/);
end
figure();
grid on;
subplot(,,);
plot(X,Numerical_solution,'ro-',X,Accurate_solution,'b^:');
title('Numerical solutions vs Accurate solutions');
legend('Numerical_solution','Accurate_solution');
subplot(,,);
plot(X,Numerical_solution-Accurate_solution,'b x');
legend('error_solution');
title('error');
toc;
Matlab-7:偏微分方程数值解法-李荣华-有限元解导数边界值的常微分(Galerkin方法)的更多相关文章
- MATLAB常微分方程的数值解法
MATLAB常微分方程的数值解法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 一.实验目的 科学技术中常常要求解常微分方程的定解问题,所谓数值解法就是 ...
- 偏微分方程数值解法的MATLAB源码
原文出处http://wenku.baidu.com/view/df412e115f0e7cd184253653.html 因为不太喜欢百度文库的格式,所以写到个人博客里面方便使用 <ifram ...
- C语言与MATLAB接口 编程与实例 李传军编着
罗列一下以前自己学习C语言与MATLAB混编的笔记,顺便复习一遍. <C语言与MATLAB接口 编程与实例 李传军编着>(未看完,目前看到P106) 目录P4-8 ************ ...
- Euler-Maruyama discretization("欧拉-丸山"数值解法)
欧拉法的来源 在数学和计算机科学中,欧拉方法(Euler method)命名自它的发明者莱昂哈德·欧拉,是一种一阶数值方法,用以对给定初值的常微分方程(即初值问题)求解.它是一种解决常微分方程数值积分 ...
- V-rep学习笔记:机器人逆运动学数值解法(The Jacobian Transpose Method)
机器人运动学逆解的问题经常出现在动画仿真和工业机器人的轨迹规划中:We want to know how the upper joints of the hierarchy would rotate ...
- JS对象 JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。
什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法: ...
- Matlab:高阶常微分三种边界条件的特殊解法(中心差分法,高精度导数边界处理)
函数文件1: function b=F(f,x0,h,N) % b(1,1)=x0(1)-h*x0(2)-u(1); % b(2,1)=x0(2)+h*x0(1)^2-u(2)-h*f; b=zero ...
- Matlab:高阶常微分三种边界条件的特殊解法(隐式Euler)
函数文件1: function b=F(f,x0,u,h) b(1,1)=x0(1)-h*x0(2)-u(1); b(2,1)=x0(2)+h*x0(1)^2-u(2)-h*f; 函数文件2: fun ...
- Matlab:导数边界值的有限元(Ritz)法
tic; % this method is transform from Ritz method %is used for solving two point BVP %this code was w ...
随机推荐
- git目录
git学习网站 https://backlog.com/git-tutorial/cn/intro/intro1_1.html
- UIElementImageShot
MemoryStream memStream = new MemoryStream(); System.Windows.Media.Imaging.RenderTargetBitmap bmp = n ...
- 31 Python中 sys.argv[]的用法简明解释(转)
Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果, ...
- CentOS7.3安装zimbra8.7.11
系统版本:CentOS7.3 Zimbra版本:8.7.11 设置IP地址 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #使用vi命令修改ip BOOT ...
- 【转】数据处理常用的sql语句整理
一下语句都是基于 mysql数据库 查询是否使用索引 explain select * FROM t_table1; 结果列的含义: table:此次查询操作是关联哪张数据表 type:连接查询操作 ...
- .Net Core技术研究-Span<T>和ValueTuple<T>
性能是.Net Core一个非常关键的特性,今天我们重点研究一下ValueTuple<T>和Span<T>. 一.方法的多个返回值的实现,看ValueTuple<T> ...
- git 使用过程中遇到的问题does not appear to be a git repository Could not read from remote respository
想把本地的git库上传到github上.github已经新建了一个public仓库,利用网站的命令 git Bash报错:does not appear to be a git repository ...
- IP通信基础的第一个星期
IP通信基础不仅是很多专业课程的基础,同时学好它,在以后很多工作上都可以运用到,有网络工程师.通信工程师等等,当然,有些证书也会涉及到IP通信基础,有网络中级高级 CCNA等等. 那么,学好IP通信基 ...
- ROS中使用Kinect摄像头和usb摄像头
1.安装的一些包 kinect用的freenect: $ sudo apt-get install ros-indigo-freenect-launch $ sudo apt-get install ...
- layui table数据表格reload where参数保留问题
layui table数据表格reload where参数保留问题 在使用layui过程中多多少少会遇到些问题 table reload 有个坑:reload时where参数会保留上次的参数,如果用 ...