用于生成常微分方程

时间:2016-11-06 04:52:29

标签: matlab numerical-methods ode

我正在尝试编写一个MATLAB程序,它允许我给它一个微分方程,然后最终产生一个数值解。

特别是,我希望解决这个等式:
enter image description here

正如我所见,创建这样一个程序所涉及的步骤将是:

第一:将ODE的域分离成等长的n区间 第二:替换微分算子写有限差分算子。 第三:以某种方式让MATLAB构建一个近似于ODE的线性方程组 第四:用MATLAB求解线性代数方程组 第五:绘制结果。

而且,在这个概念层面上,这对我来说都是有意义的。试图使用代码执行这些步骤是困难的。

到目前为止,我将程序分为两部分。第一部分是我尝试绘制函数,而第二部分则尝试执行集成。

第一部分:



function [y] = ODEs (n,a, b)
x= 0:(1/n):1;
A= zeros(n+1,n+1);
A(1,1)= -2;
A(1,2)= 1;
A(n+1, n+1)= -2;
A(n+1, n)=1;
for i= 2:n;
    A(i,i)=-2;
    A(i,i-1)=1;
    A(i,i-1)=1;
end

for i=1:n+1;
    b(i,1)=(x(1,i)).* (1/n);
end

y=inv(A)*b;

plot (x,y)
hold all
plot (x,(x(:).^3./6) +(b-a-(1/6)).*x(:) +a)




第二部分:



clear all;
 
clc;
 
prompt='How many times do you want to integrate the function y=x: ';
 
 
 
y = input(prompt);
 
 
syms ('x');
 
i = 1;
 
j = 1;
 
b = 1;
 
den_num = 1;
 
 
 
while i <= y
    
   
    while j <= y 
        den_num = j*den_num;
        j = j+1;
    end
   b = x.^y /den_num;
   
    i = i+1;
end
pretty(b)
&#13;
&#13;
&#13;

此时,两个部分都充满了错误(第二部分甚至没有提供我想要的图表),但希望我尝试做的事情很清楚。我没有找到解决我遇到的所有问题的方法:我知道这将证明是巨大的。但是,如果我能朝着正确的方向前进,我们会很高兴吗?或者是否有更有效的方式来处理我错过的事情?希望这一切都有道理。

0 个答案:

没有答案