scilab笔记

在scilab用pi要%pi

求拉普拉斯反变换,D(s)无相同的根

s=%s;//定义一个变量
N=4;//分子的值
D=s*(s^2+2*s+5);//分母
p=roots(D);//求解D的根
//计算留数,D有几个根就要计算几个
D1=pdiv(D,(s-p(1)));
c1=horner(N/D1,p(1));
D2=pdiv(D,(s-p(2)));
c2=horner(N/D2,p(2));
D3=pdiv(D,(s-p(3)));
c3=horner(N/D3,p(3));

求特征值的两种方法

A=[1 3 8;-4.5 -7 -0.1;0.53 5 -2];
r1=spec(A);//直接求特征值
//以下间接求特征值
s=%s;
u=eye(A);
f=det(s*u-A);//构造一个行列式
r=roots(f);

用欧拉法解常微分方程

可以像MATLAB一样用数组的下标,注意注释要从%变成//。绘图可以直接用plot

function ds=f(x,y)
     ds = y-2*x/y;
end  
  
// 初始条件  
x0 = 0;  
y0 = 1;  
  
// 欧拉方法的参数  
h = 0.1; // 步长  
N = 10; // 步数  
  
wucha= zeros(1, N+1);
x = zeros(1, N+1);  
y = zeros(1, N+1);  
y1 = zeros(1, N+1);
// 初始值  
x(1) = x0;  
y(1) = y0;  
wucha(1)=0;
// 使用欧拉方法进行迭代  
for i = 1:N  
    y(i+1) = y(i) + h * f(x(i), y(i)); // 欧拉公式  
    x(i+1) = x(i) + h;  
    y1(i+1)=sqrt(2*x(i+1)+1);//计算真值
    wucha(i+1)=y1(i+1)-y(i+1);
end  
  
// 绘制结果  
plot(x, y);  
set(gca(),"auto_clear","off")//代替MATLAB的hold on
plot(x,y1)
xlabel('x');  
ylabel('y');  
title('Solution using Euler Method');  
xgrid//replace  grid on
set(gca(),"auto_clear","on")//replace hold off

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bhZ567

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值