微分方程数值解 5

用二阶龙格库塔方法求微分方程Dy/dx=1-(2*x*y)/(1+x*x)','y(0)=0',的数值解我得到的程序是:MATLAB主程序function[k,X,Y,f... 用二阶龙格库塔方法求微分方程Dy/dx=1-(2*x*y)/(1+x*x)', 'y(0)=0',的数值解
我得到的程序是:
MATLAB主程序
function [k,X,Y,fxy,wch,wucha,P]=RK2(funfcn,fun,x0,b,C,y0,h)
x=x0; y=y0;p=128;
n=fix((b-x0)/h);
fxy=zeros(p,1);
wucha=zeros(p,1);
wch=zeros(p,1);
X=zeros(p,1);
Y=zeros(p,length(y));
k=1; X(k)=x; Y(k,:)=y';
% 绘图.
clc,x,h,y
%计算
%fxy=fxy(:);
for k=2:n+1
x=x+h;a2=C(3);b21=C(4);
c1=C(1);
c2=C(2);
x1=x+a2*h;
k1=feval(funfcn,x,y);
y1=y+b21*h*k1;
k2=feval(funfcn,x1,y1);
fxy(k)=feval(fun,x);
y=y+h*(c1*k1+c2*k2);
X(k)=x;
Y(k,:)=y;k=k+1;
plot(X,Y,'mh',X,fxy,'bo')
grid,xlabel('自变量 X'),ylabel('因变量 Y')
legend('用二阶龙格-库塔方法计算dy/dx=f(x,y),y(x0)=y0在[x0,b]上的数值解','y/dx=f(x,y),y(x0)=y0的精确解y=f(x)')
end
%计算误差.
for k=2:n+1
wucha(k)=norm(Y(k-1)-Y(k));
wch(k)=norm(fxy(k)-Y(k));
end
X=X(1:k);
Y=Y(1:k,:);
fxy=fxy(1:k,:);
n=1:k;
wucha=wucha(1:k,:);
wch=wch(1:k,:);
P=[n',X,Y,fxy,wch,wucha];
在MATLAB工作窗口输入下面的程序
>>x0=0;b=2;C=[1/4,3/4,2/3,2/3];y0=0;h=1/4;
[k,X,Y,fxy,wch,wucha,P]=RK2(@f1-(2*x*y)/(1+x*x),@(x+1/3*x^3)/(1+x^2),x0,b,C,y0,h)
但得到的是
??? [k,X,Y,fxy,wch,wucha,P]=RK2(@1-(2*x*y)/(1+x*x),@(x+1/3*x^3)/(1+x^2),x0,b,C,y0,h)
|
Error: Missing MATLAB operator.
求高手解答一下
展开
 我来答
祥浮话j
2014-05-25 · 超过74用户采纳过TA的回答
知道答主
回答量:140
采纳率:100%
帮助的人:76.5万
展开全部
顾名思义,就是方程的数值结果。

微分方程的解,分为解析解和数值解,前者反映的是微分方程的解,可以用一个函数表示;后者同常不能表为初等函数,但是很多问题,我们并不需要解析解,而是能求出一个数值结果就满足了。

举例说,我们希望知道,一个质点从竖直平面内的光滑半圆轨道一端,从静止开始下滑,求质点转过45度经历的时间.这个问题导致一个貌似很简单的一个微分方程:

y'=1/sqrt(sin(x)),即导函数为正选函数平方根的倒数,其解析解不能表示为初等函数形式,但是对于这个问题,我们倒是可以得到任意精确的数值解。
追问
您能告诉我,上面的程序有什么问题吗?我就是在求数值解,可是运行不下去,出现Error: Missing MATLAB operator.的提示是上面问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北京京电锐新电力自动化设备有限公司
2019-05-31 广告
提起高精度相位伏安表,可以找北京京电锐新电力自动化设备有限公司了解看看。北京京电锐新电力自动化设备有限公司,致力于电力系统自动化仪器仪表及自动装置的研发与市场推广,经过十五年的发展,现已成为专业品牌,在行业占据一席之地。公司成立十余年来,通... 点击进入详情页
本回答由北京京电锐新电力自动化设备有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式