
急求matlab x值在某一区间内,如何编程求解?
例如:y=2xx在【-3,3】以0.5为间隔取离散点,求所有y的值。求高人帮帮忙啊!谢啦哈!谢谢啦,还有一点,为什么求X^2是就会报错呢?...
例如:y=2x x在【-3,3】以0.5为间隔取离散点,求所有y的值。求高人帮帮忙啊!谢啦哈!
谢谢啦,还有一点,为什么求 X^2 是就会报错呢? 展开
谢谢啦,还有一点,为什么求 X^2 是就会报错呢? 展开
5个回答
展开全部
function z=lkfun(x,y) %f(x,y)部分,可以根据具体的函数修改
z=-0.9*y/(1+2*x);
%求解函数
%四阶龙格库塔常微分方程数值解MATLAB编程
function [y,x]=LK(a,b,y0,N)
%a,b表示数值解的区间
%y0表示初始值
%N表示解的空间密度
x=linspace(a,b,N); %待解x值
h=(b-a)/(N-1); %分成N-1个区间
y=zeros(1,N); %定义长度
y(1)=y0; %初始值
%具体的迭代过程
for i=1:N-1
k1=lkfun(x(i),y(i));
k2=lkfun(x(i)+h/2,y(i)+h*k1/2);
k3=lkfun(x(i)+h/2,y(i)+h*k2/2);
k4=lkfun(x(i)+h,y(i)+h*k3);
y(i+1)=y(i)+h/6*(k1+2*k2+2*k3+k4);
end
disp('常微分方程的数值解:')
disp([x;y])
实例验证 lk(0,1,1,6); %调用已编写的龙格库塔函数LK
常微分方程的数值解:
0 0.2000 0.4000 0.6000 0.8000 1.0000
1.0000 0.8595 0.7676 0.7013 0.6505 0.6099
dsolve('Dy=-0.9*y/(1+2*t)','y(0)=1') %matlab自带求解函数dsolve,进行验证
ans =1/(2*t+1)^(9/20)
t=[0:0.2:1];
1./((2*t+1).^(9/20))
ans =
0 0.2000 0.4000 0.6000 0.8000 1.0000
1.0000 0.8595 0.7676 0.7013 0.6505 0.6100
%发现误差非常小
这是以前写的一个四阶的,自己修改一下应该可以用的
z=-0.9*y/(1+2*x);
%求解函数
%四阶龙格库塔常微分方程数值解MATLAB编程
function [y,x]=LK(a,b,y0,N)
%a,b表示数值解的区间
%y0表示初始值
%N表示解的空间密度
x=linspace(a,b,N); %待解x值
h=(b-a)/(N-1); %分成N-1个区间
y=zeros(1,N); %定义长度
y(1)=y0; %初始值
%具体的迭代过程
for i=1:N-1
k1=lkfun(x(i),y(i));
k2=lkfun(x(i)+h/2,y(i)+h*k1/2);
k3=lkfun(x(i)+h/2,y(i)+h*k2/2);
k4=lkfun(x(i)+h,y(i)+h*k3);
y(i+1)=y(i)+h/6*(k1+2*k2+2*k3+k4);
end
disp('常微分方程的数值解:')
disp([x;y])
实例验证 lk(0,1,1,6); %调用已编写的龙格库塔函数LK
常微分方程的数值解:
0 0.2000 0.4000 0.6000 0.8000 1.0000
1.0000 0.8595 0.7676 0.7013 0.6505 0.6099
dsolve('Dy=-0.9*y/(1+2*t)','y(0)=1') %matlab自带求解函数dsolve,进行验证
ans =1/(2*t+1)^(9/20)
t=[0:0.2:1];
1./((2*t+1).^(9/20))
ans =
0 0.2000 0.4000 0.6000 0.8000 1.0000
1.0000 0.8595 0.7676 0.7013 0.6505 0.6100
%发现误差非常小
这是以前写的一个四阶的,自己修改一下应该可以用的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x=-3:0.5:3;
y=2.*x
这样不就行吗
你那个少个.啊。矩阵要点成啊
y=x.^2
y=2.*x
这样不就行吗
你那个少个.啊。矩阵要点成啊
y=x.^2
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
>> x=-3:0.5:3;
>> y=2*x.^2
y =
18.0000 12.5000 8.0000 4.5000 2.0000 0.5000 0 0.5000 2.0000 4.5000 8.0000 12.5000 18.0000
>> y=2*x.^2
y =
18.0000 12.5000 8.0000 4.5000 2.0000 0.5000 0 0.5000 2.0000 4.5000 8.0000 12.5000 18.0000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x=-3:0.5:3;
y=x.*x
看你的程序是想求y=x*x的值吧?
y=x.*x
看你的程序是想求y=x*x的值吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我来凑个热闹O(-_____,-)O~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询