函数文件1:real_fun.m

  1. function f=real_fun(x0,t0)
  2. f=(x0-x0^2)*exp(-t0);

函数文件2:fun.m

  1. function f=fun(x0,t0)
  2. f=(x0^2-x0)*exp(-t0)+2*exp(-t0);

函数文件3:fi.m

  1. function f=fi(x0)
  2. f=x0-x0^2;

脚本文件:

  1. tic;
  2. clc
  3. clear
  4. N=100;
  5. M=1000;
  6. t_h=1/M;%t的步长
  7. x_h=1/N;%x的步长
  8. x=0:x_h:1;%x的节点
  9. t=0:t_h:1;%t的节点
  10. B=-2*ones(1,N-1);
  11. C=1*ones(1,N-2);
  12. D=1*ones(1,N-2);
  13. A=diag(B)+diag(C,1)+diag(D,-1);%三对角矩阵
  14. F=zeros(N-1,M);
  15. for i=1:N-1
  16. for j=1:M
  17. F(i,j)=fun(x(i+1),t(j));
  18. end
  19. end
  20. F=F.*t_h;
  21. %********************数值解************************************
  22. J=-N^2*A*t_h+eye(N-1);%求解线性方程组的系数矩阵
  23. initial=zeros(N-1,1);
  24. z=zeros(N-1,M);
  25.  
  26. for i=1:N-1
  27. initial(i)=fi(x(i+1));
  28. end
  29. b=initial;
  30. for j=1:M%控制t的节点
  31. a=b;
  32. a=a+F(1:N-1,j);
  33. z(1:N-1,j)=J\a;%解是n-1维的
  34. b=z(1:N-1,j);%变成下一次求解的初值
  35. end
  36. z=[initial,z];
  37. Z=[zeros(1,M+1);z;zeros(1,M+1)];
  38.  
  39. %********************数值解************************************
  40. for i=1:N+1
  41. for j=1:M+1
  42. real_Z(i,j)=real_fun(x(i),t(j));
  43. end
  44. end
  45. compare=abs(real_Z-Z);
  46. [X,Y]=meshgrid(x,t);
  47. % colormap(jet)
  48.  
  49. subplot(2,2,1),
  50. mesh(X,Y,Z');
  51. xlabel('x');ylabel('t');zlabel('u');title('analytical solution');
  52. subplot(2,2,2),
  53. mesh(X,Y,real_Z');
  54. xlabel('x');ylabel('t');zlabel('u');title('numerical solution');
  55. subplot(2,2,3),
  56. mesh(X,Y,compare');
  57. xlabel('x');ylabel('t');zlabel('u');title('error solution');
  58. grid on;
  59. toc;

效果图:

Matlab:线性热传导(抛物线方程)问题的更多相关文章

  1. C# 简单实现直线方程,抛物线方程

    本例子是简单的在WinForm程序中实现在坐标系中绘制直线方程,抛物线方程,点.重新学习解析几何方面的知识.仅供学习分享使用,如有不足之处,还请指正. 涉及知识点: 直线方程的表达方式:一般表达式Ax ...

  2. C# 简单实现直线方程,抛物线方程(转载)

    http://www.cnblogs.com/hsiang/archive/2017/01/17/6294864.html 本例子是简单的在WinForm程序中实现在坐标系中绘制直线方程,抛物线方程, ...

  3. 求解线性递推方程第n项的一般方法

    概述 系数为常数,递推项系数均为一次的,形如下面形式的递推式,称为线性递推方程. \[f[n]=\begin{cases} C &n\in Value\\ a_1 f[n-1]+a_2 f[n ...

  4. Matlab:非线性热传导(抛物方程)问题

    函数文件1:real_fun.m function f=real_fun(x0,t0) %精确解 f=4*x0*(1-x0)*sin(t0); 函数文件2:F.m function f=F(N,u,U ...

  5. MATLAB线性回归方程与非线性回归方程的相关计算

    每次比赛都需要查一下,这次直接总结到自己的博客中. 以这个为例子: 2.线性方程的相关计算 x=[1,2,3,4,5]';%参数矩阵 X=[ones(5,1),x];%产生一个5行一列的矩阵,后接x矩 ...

  6. MATLAB 符号变量表达式 + 方程求解

    源代码见文末 部分源代码: % 符号变量 两种表达方式 a=sym('a'); class(a); syms b; b; % 符号常量 c=sym('); c; % 符号表达式 三种表达方式 f1=' ...

  7. MATLAB——线性神经网络

     这个函数默认使用最小二乘,所以不需要训练 % example5_1.m x=-:; y=*x-; % 直线方程为 randn(); % 设置种子,便于重复执行 y=y+randn(,length(y ...

  8. Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression

    原文:http://blog.csdn.net/abcjennifer/article/details/7732417 本文为Maching Learning 栏目补充内容,为上几章中所提到单参数线性 ...

  9. HDU_1071——积分求面积,抛物线顶点公式

    Problem Description Ignatius bought a land last week, but he didn't know the area of the land becaus ...

随机推荐

  1. pycharm import pygame 出现报错:No module named 'pygame'

    首先发现装的Python 有问题原来的Python3.6.4版本安装完成后Scripts文件夹里空白的,什么也没有,从https://www.python.org/downloads/windows/ ...

  2. 浅谈AC自动机

    写在前面:从10月23日开始写这篇博文,离NOIP2018只有十多天了.坚持不停课的倔强蒟蒻(我)尽量每天挤时间多搞一搞信竞(然而还要准备期中考试).NOIP争取考一个好成绩吧. 一.简介 AC自动机 ...

  3. 报错解决——xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

    一般在遇到这个问题的时候都是想用git或者svn,结果发现用不了并报错xcrun: error: invalid active developer path (/Library/Developer/C ...

  4. 解决wine中文字体方块或乱码

    从Windows使用字体 如果有一个安装了Windows的分区, 可以通过链接它们来使用其字体. 例如, Windows的C:\盘被挂载在/windows: # ln -s /windows/Wind ...

  5. Vue系列之 => 路由匹配

    路由基本使用,加动画切换 1 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  6. RxJava 详解——简洁的异步操作(二)

    上次说的两个例子,事件的发出和消费都是在同一个线程的.如果只用上面的方法,实现出来的只是一个同步的观察者模式.观察者模式本身的目的就是异步机制,因此异步对于 RxJava 是至关重要的.而要实现异步, ...

  7. ci 配置ckeditor + ckfinder 无图片上传按钮

    一:配置路径有问题 {$base_url}assets/js/editor/ckfinder/ckfinder.html  --> http://www.cnblogs.com/assets/j ...

  8. LNMP 如何安装mongodb

    wget -c http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.4.tgztar -zxvf mongodb-linux-x86_64 ...

  9. P3195 [HNOI2008]玩具装箱TOY(斜率优化dp)

    P3195 [HNOI2008]玩具装箱TOY 设前缀和为$s[i]$ 那么显然可以得出方程 $f[i]=f[j]+(s[i]-s[j]+i-j-L-1)^{2}$ 换下顺序 $f[i]=f[j]+( ...

  10. CentOS 6.5优化开机启动服务

    使用chkconfig命令列举出所有服务,配合管道筛选出开机默认启动的服务,再去掉level0(关机).level4(无意义)和level6(重启)的显示,使结果更直观. chkconfig | gr ...