matlab编写如下程序:编写利用显式Euler法求解一阶常微分方程的程序。
编写利用显式Euler法求解一阶常微分方程的程序。测试方程y`=-y+x+1,0≤x≤10等号左边是y的导数!!答题正确者加分啊!!希望各位matlab高手给予支持!!^...
编写利用显式Euler法求解一阶常微分方程的程序。
测试方程y`=-y+x+1,0≤x≤10
等号左边是y的导数!!
答题正确者加分啊!!希望各位matlab高手给予支持!!^_^ 展开
测试方程y`=-y+x+1,0≤x≤10
等号左边是y的导数!!
答题正确者加分啊!!希望各位matlab高手给予支持!!^_^ 展开
3个回答
展开全部
function [x,y]=euler_homework(f,x0,y0,xfinal,n)
f=input('y`=','s');
f=inline(f,'x','y');
x0=input('x0=');
xl=input('xfinal=');
y0=input('y0=');
n=input('n=');
h=(xl-x0)/n;
x(1)=x0;
y(1)=y0;
for i=1:1:n
x(i+1)=x(i)+h;
y(i+1)=y(i)+h*f(x(i),y(i));
end;
euler_homework=y(n);
哥们你吉大的吧,跟我做一样的作业,第四题对吧!!分享一下!!
f=input('y`=','s');
f=inline(f,'x','y');
x0=input('x0=');
xl=input('xfinal=');
y0=input('y0=');
n=input('n=');
h=(xl-x0)/n;
x(1)=x0;
y(1)=y0;
for i=1:1:n
x(i+1)=x(i)+h;
y(i+1)=y(i)+h*f(x(i),y(i));
end;
euler_homework=y(n);
哥们你吉大的吧,跟我做一样的作业,第四题对吧!!分享一下!!
展开全部
以下为代码
------------------------------------------
sum1=0;
for i=0:15
sum1=sum1+2^i;
end
disp(['用for循环所求的值为' num2str(sum1) ]);
sum2=0;
i=0;
while i<16
sum2=sum2+2^i;
i=i+1;
end
disp(['用while循环所求的值为' num2str(sum2) ]);
----------------------------------------------------
以下为结果
----------------------------------------------------
用for循环所求的值为65535
用while循环所求的值为65535
>> %其实用等比数列求和公式可以知道和为 2^16-1
>> 2^16-1
ans =
65535
>>
-----------------------------------------------
如果是要能够调用的函数形式的话,可以在m文件开头加上函数的定义句
function XXXXXX(),但是这时要保证XXXXXX同时是文件的名称,这样就可以在其它文件中调用XXXXXX函数了
欢迎采纳~~~
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
------------------------------------------
sum1=0;
for i=0:15
sum1=sum1+2^i;
end
disp(['用for循环所求的值为' num2str(sum1) ]);
sum2=0;
i=0;
while i<16
sum2=sum2+2^i;
i=i+1;
end
disp(['用while循环所求的值为' num2str(sum2) ]);
----------------------------------------------------
以下为结果
----------------------------------------------------
用for循环所求的值为65535
用while循环所求的值为65535
>> %其实用等比数列求和公式可以知道和为 2^16-1
>> 2^16-1
ans =
65535
>>
-----------------------------------------------
如果是要能够调用的函数形式的话,可以在m文件开头加上函数的定义句
function XXXXXX(),但是这时要保证XXXXXX同时是文件的名称,这样就可以在其它文件中调用XXXXXX函数了
欢迎采纳~~~
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你没有给出初值条件,这里假设y0=1。
程序如下:
x=[0:0.01:10]'; % x,列向量,步长为0.01
length=size(x,1); % x行数,即x离散点数
y=zeros(size(x)); % y
y(1)=1; % 初值条件,需给定
for n=1:1:length-1
y(n+1)=y(n)+0.1*(-y(n)+x(n)+1);
end
plot(x,y)
程序如下:
x=[0:0.01:10]'; % x,列向量,步长为0.01
length=size(x,1); % x行数,即x离散点数
y=zeros(size(x)); % y
y(1)=1; % 初值条件,需给定
for n=1:1:length-1
y(n+1)=y(n)+0.1*(-y(n)+x(n)+1);
end
plot(x,y)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询