我是靠谱客的博主 无语银耳汤,最近开发中收集的这篇文章主要介绍matlab子函数相互调用吗,matlab主函数如何调用子函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2021/03/18 18:00:53

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函数可不可以放在子程序里面,

在他的回答中放到了主程序中,如果可以该怎么设置,

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

最后

以上就是无语银耳汤为你收集整理的matlab子函数相互调用吗,matlab主函数如何调用子函数的全部内容,希望文章能够帮你解决matlab子函数相互调用吗,matlab主函数如何调用子函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部