一道Matlab编程题

空间中一曲线的参数方程为
x = sint , y = t ^2,z = ln(t+1) ,t的取值范围为[0,20],求曲线的长度。
求用Matlab编代码求解

1. 首先举一个简单的例子:求y=x^2 ,在x为[0,2]上的曲线长度。
%%把下面的复制粘贴进MATLAB

syms t
x=t;
y=t^2;
df=@(t)(1+4*t.^2).^0.5; %%MATLAB早期版本不支持@功能
quad(df,0,1)
%%%
答案ans=1.4789

2. 再回答你的问题:
clc
clear
syms t
x=sin (t);
y=t^2;
z=log(t+1);
%%% dL= sqrt((diff(x)^2+diff(y)^2+diff(z)^2)) 求曲线长度公式
%%% dL=(1/(t + 1)^2 + cos(t)^2 + 4*t^2)^(1/2) 即上述公式的数学表达式
df= @(t)(1./(t + 1).^2 + cos(t).^2 + 4*t.^2).^(1/2); %% 将上述表达式卸载@(t)之后,注意加'.'运算。
quad(df,0,20)
%%%
答案 ans=400.9527
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-07

可是,你为什么要到我这个Mathematica专攻的团队来提问呢……那我也给个Mma的解法来消灭这个提问吧:

NIntegrate[Sqrt@Total[D[{Sin@t, t^2, Log@(t + 1)}, t]^2], {t, 0, 20}]

(* 400.953 *)

第2个回答  2014-05-18
你的case1和case2描述不是很清楚,我没有理解你的意思。追问

x,y,z为三个参数方程,用matlab代码求解