常/偏微分方程求解

常微分方程

1、四阶经典步长Runge-Kutta法求解高阶常微分方程
y''=2y^3
y(1)=y'(1)=-1
1<x≤1.5

clear; 
clc;
% 四阶经典定步长Runge-Kutta法求解高阶常微分方程组
% function
f = @(x,y,z)z;
g = @(x,y,z)2*(y^3);
% 条件
h = 0.01;
len = 0.5/h; 
x(1) = 1; 
y(1) = -1; 
z(1) = -1; 
i = 1; 
k = 0;
while k < len
    K1 = f(x(i),y(i),z(i));
    L1 = g(x(i),y(i),z(i));
    K2 = f(x(i)+h/2,y(i)+h*K1/2,z(i)+h*L1/2);
    L2 = g(x(i)+h/2,y(i)+h*K1/2,z(i)+h*L1/2);
    K3 = f(x(i)+h/2,y(i)+h*K2/2, z(i)+h*L2/2);
    L3 = g(x(i)+h/2,y(i)+h*K2/2, z(i)+h*L2/2);
    K4 = f(x(i)+h,y(i)+h*K3,z(i)+h*L3);
    L4 = g(x(i)+h,y(i)+h*K3,z(i)+h*L3);
    y(i+1) = y(i)+(K1+2*K2+2*K3+K4)*h/6;
    z(i+1) = z(i)+(L1+2*L2+2*L3+L4)*h/6;
    x(i+1) = x(i) + h;
    i = i + 1;
    k = k + 1;
end
plot(x, y, '-o');
title('第一题图');
y = y';
z = z';

2、用ode15s函数、ode23s函数和ode23tb函数求刚性方程并画图比较:
y''-1000(1-y^2)y'+y=0
y(0)=2,y'(0)=0
https://ww2.mathworks.cn/help/matlab/ref/ode15s.html

function dydt = vdp1000(t,y)
%VDP1000  Evaluate the van der Pol ODEs for mu = 1000.
%
%   See also ODE15S, ODE23S, ODE23T, ODE23TB.

%   Jacek Kierzenka and Lawrence F. Shampine
%   Copyright 1984-2014 The MathWorks, Inc.

dydt = [y(2); 1000*(1-y(1)^2)*y(2)-y(1)];

使用 ode15s 求解器对刚性方程组求解,然后绘制解 y 的第一列对时间点 t 的图。ode15s 求解器通过刚性区域所需的步数远远少于 ode45。

%% ode15s
[t1,y1] = ode15s(@vdp1000,[0 3000],[2 0]);
figure(1)
plot(t1,y1(:,1),'-o')
title('ode15s作图')
%% ode23s
[t2,y2] = ode23s(@vdp1000,[0 3000],[2 0]);
figure(2)
plot(t2,y2(:,1),'-*')
title('ode23s作图')
%% ode23tb
[t3,y3] = ode23tb(@vdp1000,[0 3000],[2 0]);
figure(3)
plot(t3,y3(:,1),'-.')
title('ode23tb作图')
ode15s.jpg
ode23s.jpg
ode23tb.jpg

3、求解微分方程组


第三题图
y0 = [0, 0, 0.68, 1, -0.5];
[t, y] = ode45(@fun8_3, [-10, 10], y0);
% plot(y(:,4),y(:,1));
plot (t,y);
title('第三题');
% 微分方程组
function f = fun8_3(t,y)
f = [y(2);
    y(3);
    -3*y(1)*y(3)+2*(y(2))^2 - y(4);
    y(5);
    -2.1*y(1)*y(5);];
 end
  1. 已知Appolo卫星的运动轨迹(x,y)满足下面的方程:


    方程组.jpg

    其中
    条件1.jpg

    试在初值条件为
    初值条件.jpg

    的情况下求解,并绘制卫星轨迹图。

解:
函数appollo,初始化方程组,设定参数

function dx = appollo(t,x)
% mui = μ
% mustar = λ
mui = 1/82;
mustar = 1 - mui;
% 条件r1,r2 
% x(1) = x; 
% x(3) = y;
r1 = sqrt((x(1) + mui)^2 + x(3)^2);
r2 = sqrt((x(1) - mustar)^2 + x(3)^2);
% 方程组
% dy/dt = x(4)
% d^2y/dt^2 = x(2)
dx = [x(2)
2*x(4) + x(1) - mustar*(x(1)+mui)/r1^3 - mui*(x(1) - mustar)/r2^3
x(4)
-2*x(2) + x(3) - mustar*x(3)/r1^3 - mui*x(3)/r2^3];

主函数

clear;
clc;
% test 4
% x0(i)对应与xi的初值
% x(0) = 1.2;
% x'(0) = 0;
% y(0) = 0;
% y'(0) = -1.04935371
x0=[1.2;0;0;-1.04935371];
options=odeset('reltol',1e-8);
% 该命令的另一种写法是options=odeset;options.reltol=1e-8;
% 是解微分方程时的选项设置,'RelTol',1e-4,是相对误差设置
% 'AbsTol',[1e-4 1e-4 1e-5]是绝对误差设置
tic
[t,y]=ode45(@appollo,[0,20],x0,options);
%t是时间点,y的第i列对应xi的值,t和y的行数相同
toc
plot(y(:,1),y(:,3))
%绘制x1和x3,也就是x和y的图形
title('Appollo卫星运动轨迹')
xlabel('X')
ylabel('Y')

运行结果:

>> test4
时间已过 0.039310 秒。
appollo.jpg

偏微分方程求解工具的学习

图片1.jpg
图片2.jpg
图片3.jpg
图片4.jpg
图片5.jpg
图片6.jpg
图片7.png
图片8.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容