我想用 Matlab 中的 Runge Kutta 4 方法求解三个微分方程组(Ode45不允许)。
经过长时间的查找,我在网上找到的要么是无法理解的示例,要么是根本不包含示例的一般解释。我想要一个关于如何正确实施我的解决方案的具体例子,或者我可以建立的类似问题的解决方案。
我已经走了很远;我当前的代码在大多数组件上输出了一个带有 2 个正确小数的矩阵,我对此非常满意。
然而,当步长减小时,误差变得很大。我知道我创建的 for 循环并不完全正确。我可能错误地定义了函数,但我很确定如果对 for 循环进行一些小的更改,问题就会得到解决,因为它似乎已经在当前状态下很好地解决了方程系统。
clear all, close all, clc
%{
____________________TASK:______________________
Solve the system of differential equations below
in the interval 0<t<1, with stepsize h = 0.1.
x'= y x(0)=1
y'= -x-2e^t+1 y(0)=0 , where x=x(t), y=y(t), z=z(t)
z'= -x - e^t + 1 z(0)=1
THE EXACT SOLUTIONS for x y and z can be found in this pdf:
archives.math.utk.edu/ICTCM/VOL16/C029/paper.pdf
_______________________________________________
%} …Run Code Online (Sandbox Code Playgroud) 当到达第三行时,以下代码返回“错误:无效语法”:
# -*- coding: utf-8 -*-
print “åäö”
ÅÄÖ = 4
Run Code Online (Sandbox Code Playgroud)
尽管保留了非ASCII字符,但打印声明仍然可以正常工作。问题似乎是当非ascii字符用作变量名时。在python 3中执行此操作可以很好地工作,我知道这是因为python 3和2对字符串的处理不同,但是出于各种原因,我需要使用python 2。我真的觉得应该有一个非常简单的解决方案来解决这个问题,但是经过数小时的搜索后,我仍然没有找到它。如果有人可以帮助我,我将不胜感激!
[注意:能够在python 2.7中写字母åäö对我来说非常有价值,部分原因是因为我对使用python编程还不陌生,并且强烈希望使用瑞典语命名我的变量和函数,因为这使它们与python分离更加容易内置功能。]