函数文件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:

 function g=Jacobian(x0,u,h)
g(1,1)=1;
g(1,2)=-h;
g(2,1)=2*h*x0(1);
g(2,2)=1;

函数文件3:

 function x=newton_Iterative_method(f,u,h)
% u:上一节点的数值解或者初值
% x0 每次迭代的上一节点的数值
% x1 每次的迭代数值
% tol 允许误差
% f 右端函数
x0=u;
tol=1e-11;
x1=x0-Jacobian(x0,u,h)\F(f,x0,u,h);
while (norm(x1-x0,inf)>tol)
%数值解的2范数是否在误差范围内
x0=x1;
x1=x0-Jacobian(x0,u,h)\F(f,x0,u,h);
end
x=x1;%不动点

脚本文件:

 tic;
clear all
clc
N=100;
h=1/N;
x=0:h:1;
y=inline('x.^2.*sin(x).^2+2*cos(x)-x.*sin(x)');
fun1=inline('x.*sin(x)');
Accurate=fun1(x);
f=y(x);
Numerical=zeros(2,N+1);
for i=1:N
Numerical(1:2,i+1)=newton_Iterative_method(f(i+1),Numerical(1:2,i),h);
end
error=Numerical(1,:)-Accurate;
subplot(1,3,1)
plot(x,Accurate);
xlabel('x');
ylabel('Accurate');
grid on
subplot(1,3,2)
plot(x,Numerical(1,:));
xlabel('x');
ylabel('Numerical');
grid on
subplot(1,3,3)
plot(x,error);
xlabel('x');
ylabel('error');
grid on
toc;

效果图:

Matlab:高阶常微分三种边界条件的特殊解法(隐式Euler)的更多相关文章

  1. 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 ...

  2. 学好Spark/Kafka必须要掌握的Scala技术点(三)高阶函数、方法、柯里化、隐式转换

    5. 高阶函数 Scala中的高阶函数包含:作为值的函数.匿名函数.闭包.柯里化等,可以把函数作为参数传递给方法或函数. 5.1 作为值的函数 定义函数时格式: val 变量名 = (输入参数类型和个 ...

  3. Matlab:非线性高阶常微分方程的几种解法

    一.隐式Euler: 函数文件1: function b=F(t,x0,u,h) b(,)=x0()-h*x0()-u(); b(,)=x0()+*h*x0()/t+*h*(*exp(x0())+ex ...

  4. Matlab中数组元素引用——三种方法

    Matlab中数组元素引用——三种方法   1.Matlab中数组元素引用有三种方法 1 2 3 1.下标法(subscripts) 2.索引法(index) 3.布尔法(Boolean) 注意:在使 ...

  5. MATLAB 显示输出数据的三种方式

    MATLAB 显示输出数据的三种方式 ,转载 https://blog.csdn.net/qq_35318838/article/details/78780412 1.改变数据格式 当数据重复再命令行 ...

  6. 如何使用MATLAB对图片的RGB三种颜色进行提取

    参考: https://jingyan.baidu.com/article/456c463b41de5f0a5831448e.html matlab在图像处理方面,具有很强大的应用.下面将分享如何使用 ...

  7. c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast

    C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...

  8. matlab 高阶(三)—— 插值(fft、)

    1. FFT 插值 y = interpft(x,n) y = [0, .5, 1., 1.5, 2., 1.5, 1., .5, 0, -.5, -1, -1.5, -2., -1.5, -1., ...

  9. java高并发锁的三种实现

    提到锁大家会想到Synchronized同步关键字,使用它确实可以解决一切并发问题,但是对于体统吞吐量要求更高,在这里提供了几个小技巧.帮助大家减少锁粒度.提高系统的并发能力 一.乐观锁 试用场景:读 ...

随机推荐

  1. WCF中的ServiceHost初始化两种方式

    1 代码方式 using(ServiceHost host=new ServiceHost(typeof(HelloWordService))) { host.AddServiceEndpoint(t ...

  2. python字符串拼接

    Python字符串拼接 在Python的实际开发中,很多都需要用到字符串拼接,python中字符串拼接有很多,今天总结一下: 用+符号拼接 用%符号拼接 用join()方法拼接 用format()方法 ...

  3. ios dispatch_async使用

    一般这样使用: dispatch_async(dispatch_get_global_queue(0, 0),^{ //进入另一个线程 dispatch_async(dispatch_get_main ...

  4. java框架之SpringCloud(2)-Rest微服务案例

    在上一章节已经对微服务与 SpringCloud 做了介绍,为方便后面学习,下面以 Dept 部门模块为例做一个微服务通用 Demo —— Consumer 消费者(Client) 通过 REST 调 ...

  5. PowerBI新功能: PowerBI多报表共享一个数据集

    在PowerBI里面建模,来来回回摸了一遍之后,肯定不想在另外一个报表的时候重复一次建模--这样不利于复用和维护. 四月份的更新版提供了一个预览功能(如下),可以让多报表(pbix)共享同一个数据集. ...

  6. 希尔排序(Python实现)

    目录 1.for版本--希尔排序 2. while版本--希尔排序 3. 测试用例 4. 算法时间复杂度分析 1.for版本--希尔排序 def shell_sort_for(a_list): ''' ...

  7. python安装simplejson

    import simplejson 报错:ImportError: No module named simplejson simplejson是ansible一个很重要的依赖,经测试在python 2 ...

  8. 逆向 AWS API 设计

    由于AWS并没有像Google一样公开出一份API Design Guide,所以只能根据 API 的模样去逆向工程最初的设计考量.既然上一篇介绍了很多 REST 的缺陷,那么这里也会介绍一下 AWS ...

  9. C#中的装箱(inboxing)和拆箱(unboxing)(简单理解)

    装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作.  装箱:将一个值类型隐式地转换成一个object类型,或把这个值类型转换成一个被该值类型应用的接口类型,把一个值类型的值装箱,就是创建一个ob ...

  10. [openjudge-动态规划]Maximum sum

    题目描述 题目原文 描述 Given a set of n integers: A={a1, a2,-, an}, we define a function d(A) as below: d(A)=m ...