作者ejialan (eji)
看板MATLAB
标题Re: [讨论] 初学者 还不是很会写积分程式
时间Tue May 1 12:29:14 2012
※ 引述《hsuanboy (压力)》之铭言:
: 比如一个例子:
: 分子为:-3^X+4X+1由0积到theat角
: 分母为:-3^X+4X+1由0积到pi/3
: 上面的两式相除会等於1/20
: 求theat角为多少
: 以下是我初试写的 真的是刚学 还不是很懂 希望有好心的大大能帮忙
: syms x
: function g1=fun(x)
matlab 的m-file有两种 一种是执行档式的 可以直接按F5执行
效果相当於将指令逐行贴到Command Window执行
另一种是函数形式的 开头必须是function [output]=fname(input)
档名也必须存成fname(需要对应 ^^^^^)
以function 定义函数也只能出现在function型的m-file
这里你要在执行式的m-file定义函数建议你使用匿名函数
g1=@(x) -3.^x+4*x+1
这里我是照你上面的例子打 你下面似乎是想打-3*x.^2+4*x+1
: g1=-3(x).^2+4x+1;
: area1=quadl(@fun,0,1/3pi);
: function g2=fun(x)
: g2=-3(x).^2+4x+1;
: area2=quadl(@fun,0,theat);
: function y=fun(x);y=1/20
: y=area1/area2;
: pretty(y)
: 我这样写是哪边有错的呢
: 希望有大大能帮我更改的
: 谢谢阿!!
matlab积分可以用int和quad
int是做解析的积分 quad是做数值积分
你的分子积分上界含有变数 因此数值积分不适用
分母两个都可以
然後分子/分母=1/20变成一个含有theat的方程式
要求解可以用solve
程式码如下
syms theat
num=int('-3.^X+4*X+1',0,theat)
g2=@(x) -3.^x+4*x+1;
den=quad(g2,0,pi/3,eps)
% den=int('-3.^X+4*X+1',0,pi/3)
eq=num/den-1/20
theat=solve(eq)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.250.27.59
1F:推 vincent59:谢谢指教 05/01 14:36