matlab主函数如何调用子函数
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 14:54:07
matlab主函数如何调用子函数
我编写了一个matlab子函数是关于龙格库塔计算的
主函数内容为:
format long
i=145;
t=i*0.001;
x=zeros(2,1);
x(1,1)=35;
f=t*sin(x(1,1));
x(2,1)=Runge_Kutta(x(1,1));
子函数内容为:
function x1=Runge_Kutta(x)
%Runge-Kutta积分方法解算
T=0.01;
%设周期是0.01秒,具体的计算中再修改
f(x,t)=t*sin(x);
%先假设f(x,t)是一个这样的函数,具体函数在具体问题中再修改
x=x(1,1);
%x先假设一个值,到具体问题时再具体输入修改
K1=t*sin(x);
K2=(t+T/2)*sin(x+K1/2);
K3=(t+T/2)*sin(x+K2/2);
K4=(t+T)*sin(x+K3);
x1=x+(T/6)*(K1+2*K2+2*K3+K4);
%龙格库塔方法计算过程
在计算过程中提示出现的问题是Error in ==> diaoyong1 at 8
x(2,1)=Runge_Kutta(x(1,1));
请问在调用子程序时该怎么样修改这两个函数,
zcy_179的回答,我还有一个问题
就是这个f函数可不可以放在子程序里面,
在他的回答中放到了主程序中,如果可以该怎么设置,
我编写了一个matlab子函数是关于龙格库塔计算的
主函数内容为:
format long
i=145;
t=i*0.001;
x=zeros(2,1);
x(1,1)=35;
f=t*sin(x(1,1));
x(2,1)=Runge_Kutta(x(1,1));
子函数内容为:
function x1=Runge_Kutta(x)
%Runge-Kutta积分方法解算
T=0.01;
%设周期是0.01秒,具体的计算中再修改
f(x,t)=t*sin(x);
%先假设f(x,t)是一个这样的函数,具体函数在具体问题中再修改
x=x(1,1);
%x先假设一个值,到具体问题时再具体输入修改
K1=t*sin(x);
K2=(t+T/2)*sin(x+K1/2);
K3=(t+T/2)*sin(x+K2/2);
K4=(t+T)*sin(x+K3);
x1=x+(T/6)*(K1+2*K2+2*K3+K4);
%龙格库塔方法计算过程
在计算过程中提示出现的问题是Error in ==> diaoyong1 at 8
x(2,1)=Runge_Kutta(x(1,1));
请问在调用子程序时该怎么样修改这两个函数,
zcy_179的回答,我还有一个问题
就是这个f函数可不可以放在子程序里面,
在他的回答中放到了主程序中,如果可以该怎么设置,
function main
format long
i=145;
t=i*0.001;
x=zeros(2,1);
x(1,1)=35;
f=t*sin(x(1,1));
x(2,1)=Runge_Kutta(t,x(1,1))
%子函数内容为:
function x1=Runge_Kutta(x)
%Runge-Kutta积分方法解算
T=0.01;
%设周期是0.01秒,具体的计算中再修改
%f(x,t)=t*sin(x); %这个语句肯定有问题,不起作用,所以注销掉
%先假设f(x,t)是一个这样的函数,具体函数在具体问题中再修改
x=x(1,1);
%x先假设一个值,到具体问题时再具体输入修改
K1=t*sin(x);
K2=(t+T/2)*sin(x+K1/2);
K3=(t+T/2)*sin(x+K2/2);
K4=(t+T)*sin(x+K3);
x1=x+(T/6)*(K1+2*K2+2*K3+K4);
%龙格库塔方法计算过程
以上计算的结果为
x =
35.000000000000000
34.999399730655441
format long
i=145;
t=i*0.001;
x=zeros(2,1);
x(1,1)=35;
f=t*sin(x(1,1));
x(2,1)=Runge_Kutta(t,x(1,1))
%子函数内容为:
function x1=Runge_Kutta(x)
%Runge-Kutta积分方法解算
T=0.01;
%设周期是0.01秒,具体的计算中再修改
%f(x,t)=t*sin(x); %这个语句肯定有问题,不起作用,所以注销掉
%先假设f(x,t)是一个这样的函数,具体函数在具体问题中再修改
x=x(1,1);
%x先假设一个值,到具体问题时再具体输入修改
K1=t*sin(x);
K2=(t+T/2)*sin(x+K1/2);
K3=(t+T/2)*sin(x+K2/2);
K4=(t+T)*sin(x+K3);
x1=x+(T/6)*(K1+2*K2+2*K3+K4);
%龙格库塔方法计算过程
以上计算的结果为
x =
35.000000000000000
34.999399730655441
matlab主函数如何调用子函数
matlab中,怎么样在主函数里调用子函数?是用什么命令啊?
Matlab中有子函数如何写主函数
子函数中得出的两个变量如何被主函数调用(C语言)
编写子函数计算2个数中的最大数,并在主函数中调用
matlab中的一个子函数:循环得到的多个矩阵,为什么只能调用最后的那个矩阵,如何调用所有的矩阵?
matlab函数调用出错,
麻烦看看这个matlab程序那里错了,调用总是说子函数出错,是想把一个分段函数加到一个函数上的
matlab 中如何调用M文件中函数?
matlab的子函数中涉及一个变量,在主函数中会进行赋值,在子函数中怎样定义
matlab如何定义子函数f(t)?
如何在matlab中建立子函数?